diff --git a/examples/dokk/datafiles/dengue/levelF.ini b/examples/dokk/datafiles/dengue/levelF.ini index 0f9ccae45abc48c89b0347570e3d2263648406ae..55afca839941045110cf3131fd15dbf1a2790fbb 100644 --- a/examples/dokk/datafiles/dengue/levelF.ini +++ b/examples/dokk/datafiles/dengue/levelF.ini @@ -13,29 +13,29 @@ TEXTCOLORBLUE: 255 TEXTSIZE: 30 TEXT_QUICKSTART: 7 TEXT_COUNT: 10 -TEXT1: Voilà, la phase d'entrainement du jeu est terminée ... +TEXT1: Voil�, la phase d'entrainement du jeu est termin�e ... TEXTTIME1: 3000 -TEXT2: Au niveau suivant, vous devez approcher/docker le ligand sur la protéine aussi bien que possible. +TEXT2: Au niveau suivant, vous devez approcher/docker le ligand sur la prot�ine aussi bien que possible. TEXTTIME2: 8000 -TEXT3: La première cible est une enzyme importante du virus de la dengue. +TEXT3: La premi�re cible est une enzyme importante du virus de la dengue. TEXTTIME3: 8000 -TEXT4: Pour arrêter le virus de la dengue, placez le ligand, le mieux que vous le pouvez, -à l'intérieur de la protéine. +TEXT4: Pour arr�ter le virus de la dengue, placez le ligand, le mieux que vous le pouvez, + � l'int�rieur de la prot�ine. TEXTTIME4: 8000 -TEXT5: Vous pouvez lire votre score actuel en haut à gauche de l'écran. Si vous êtes -satisfait du score, vous pouvez appuyer sur "FIT" pour terminer ce -niveau. +TEXT5: Vous pouvez lire votre score actuel en haut � gauche de l'�cran. Si vous �tes + satisfait du score, vous pouvez appuyer sur "FIT" pour terminer ce + niveau. TEXTTIME5: 8000 -TEXT6: Le plus rapidement vous terminez un niveau, le moins de temps de pénalité sera -ajouté à votre score. +TEXT6: Le plus rapidement vous terminez un niveau, le moins de temps de p�nalit� sera + ajout� � votre score. TEXTTIME6: 8000 -TEXT7: Êtes-vous prêt? Maintenant, cela devient sérieux. +TEXT7: �tes-vous pr�t? Maintenant, cela devient s�rieux. TEXTTIME7: 3000 TEXT8: 3 @@ -67,8 +67,8 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 16 TEXT_COUNT: 2 -TEXT1: Malheureusement, vous n'êtes pas arrivés parmi les top 10. Votre -score est de $DIFFERENCE points trop élevé. +TEXT1: Malheureusement, vous n'�tes pas arriv�s parmi les top 10. Votre + score est de $DIFFERENCE points trop �lev�. TEXTTIME1: 4000 TEXTCOLORRED1: 255 TEXTCOLORGREEN1: 64 @@ -76,8 +76,8 @@ TEXTCOLORBLUE1: 0 TEXTSIZE1: 40 TEXT2: RMSD: $RMSD - Pénalité de temps: $TIMEMALUS - Résultat final: $SCORE + P�nalit� de temps: $TIMEMALUS + R�sultat final: $SCORE TEXTTIME2: -1 TEXTCOLORRED2: 255 TEXTCOLORGREEN2: 64 @@ -92,10 +92,10 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 16 TEXT_COUNT: 1 -TEXT1: Bravo, vous avez termine $RANKème! +TEXT1: Bravo, vous avez termine $RANK�me! RMSD: $RMSD - Pénalité de temps: $TIMEMALUS - Résultat final: $SCORE + P�nalit� de temps: $TIMEMALUS + R�sultat final: $SCORE TEXTTIME1: 4000 TEXTCOLORRED1: 0 TEXTCOLORGREEN1: 255 @@ -103,8 +103,8 @@ TEXTCOLORBLUE1: 64 TEXTSIZE1: 40 [Info] -TEXT: Pour arrêter le virus de la dengue, placez le ligand, le mieux que vous le pouvez, -à l'intérieur de la protéine. +TEXT: Pour arr�ter le virus de la dengue, placez le ligand, le mieux que vous le pouvez, + � l'int�rieur de la prot�ine. [Box] XMIN:-50 diff --git a/examples/dokk/datafiles/glyoxalase/levelF.ini b/examples/dokk/datafiles/glyoxalase/levelF.ini index 982bfa431a532508ac23a34146927f9cd52dd751..1d707c1cbc5561545f53fe139d0bf250fb6daa98 100644 --- a/examples/dokk/datafiles/glyoxalase/levelF.ini +++ b/examples/dokk/datafiles/glyoxalase/levelF.ini @@ -14,7 +14,7 @@ TEXTCOLORBLUE: 255 TEXTSIZE: 30 TEXT_QUICKSTART: 2 TEXT_COUNT: 4 -TEXT1: Êtes-vous prêt? Maintenant, cela devient sérieux. +TEXT1: �tes-vous pr�t? Maintenant, cela devient s�rieux. TEXTTIME1: 3000 TEXT2: 3 @@ -46,8 +46,8 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 16 TEXT_COUNT: 2 -TEXT1: Malheureusement, vous n'êtes pas arrivés parmi les top 10. Votre -score est de $DIFFERENCE points trop élevé. +TEXT1: Malheureusement, vous n'�tes pas arriv�s parmi les top 10. Votre + score est de $DIFFERENCE points trop �lev�. TEXTTIME1: 4000 TEXTCOLORRED1: 255 TEXTCOLORGREEN1: 64 @@ -55,8 +55,8 @@ TEXTCOLORBLUE1: 0 TEXTSIZE1: 40 TEXT2: RMSD: $RMSD - Pénalité de temps: $TIMEMALUS - Résultat final: $SCORE + P�nalit� de temps: $TIMEMALUS + R�sultat final: $SCORE TEXTTIME2: -1 TEXTCOLORRED2: 255 TEXTCOLORGREEN2: 64 @@ -71,10 +71,10 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 16 TEXT_COUNT: 1 -TEXT1: Bravo, vous avez termine $RANKème! +TEXT1: Bravo, vous avez termine $RANK�me! RMSD: $RMSD - Pénalité de temps: $TIMEMALUS - Résultat final: $SCORE + P�nalit� de temps: $TIMEMALUS + R�sultat final: $SCORE TEXTTIME1: 4000 TEXTCOLORRED1: 0 TEXTCOLORGREEN1: 255 diff --git a/examples/dokk/datafiles/retinol/levelF.ini b/examples/dokk/datafiles/retinol/levelF.ini index 91437a95c632aef307ff0127351ca2de660c705f..e53c7b83a60ed8aa452c73cdd0eabcc8a1276dbb 100644 --- a/examples/dokk/datafiles/retinol/levelF.ini +++ b/examples/dokk/datafiles/retinol/levelF.ini @@ -13,7 +13,7 @@ TEXTCOLORBLUE: 255 TEXTSIZE: 30 TEXT_QUICKSTART: 2 TEXT_COUNT: 4 -TEXT1: Êtes-vous prêt? Maintenant, cela devient sérieux. +TEXT1: �tes-vous pr�t? Maintenant, cela devient s�rieux. TEXTTIME1: 5000 TEXT2: 3 @@ -45,8 +45,8 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 16 TEXT_COUNT: 2 -TEXT1: Malheureusement, vous n'êtes pas arrivés parmi les top 10. Votre -score est de $DIFFERENCE points trop élevé. +TEXT1: Malheureusement, vous n'�tes pas arriv�s parmi les top 10. Votre + score est de $DIFFERENCE points trop �lev�. TEXTTIME1: 4000 TEXTCOLORRED1: 255 TEXTCOLORGREEN1: 64 @@ -54,8 +54,8 @@ TEXTCOLORBLUE1: 0 TEXTSIZE1: 40 TEXT2: RMSD: $RMSD - Pénalité de temps: $TIMEMALUS - Résultat final: $SCORE + P�nalit� de temps: $TIMEMALUS + R�sultat final: $SCORE TEXTTIME2: -1 TEXTCOLORRED2: 255 TEXTCOLORGREEN2: 64 @@ -70,10 +70,10 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 16 TEXT_COUNT: 1 -TEXT1: Bravo, vous avez termine $RANKème! +TEXT1: Bravo, vous avez termine $RANK�me! RMSD: $RMSD - Pénalité de temps: $TIMEMALUS - Résultat final: $SCORE + P�nalit� de temps: $TIMEMALUS + R�sultat final: $SCORE TEXTTIME1: 4000 TEXTCOLORRED1: 0 TEXTCOLORGREEN1: 255 diff --git a/examples/dokk/datafiles/thrombin/levelF.ini b/examples/dokk/datafiles/thrombin/levelF.ini index aa9004ef863bec912ec45b11d5891573d6185292..58147c97a9a565284f10846be2ee2b9c2f9fa397 100644 --- a/examples/dokk/datafiles/thrombin/levelF.ini +++ b/examples/dokk/datafiles/thrombin/levelF.ini @@ -13,7 +13,7 @@ TEXTCOLORBLUE: 255 TEXTSIZE: 30 TEXT_QUICKSTART: 2 TEXT_COUNT: 4 -TEXT1: Êtes-vous prêt? Maintenant, cela devient sérieux. +TEXT1: �tes-vous pr�t? Maintenant, cela devient s�rieux. TEXTTIME1: 3000 TEXT2: 3 @@ -45,8 +45,8 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 20 TEXT_COUNT: 2 -TEXT1: Malheureusement, vous n'êtes pas arrivés parmi les top 10. Votre -score est de $DIFFERENCE points trop élevé. +TEXT1: Malheureusement, vous n'�tes pas arriv�s parmi les top 10. Votre + score est de $DIFFERENCE points trop �lev�. TEXTTIME1: 4000 TEXTCOLORRED1: 255 TEXTCOLORGREEN1: 64 @@ -54,8 +54,8 @@ TEXTCOLORBLUE1: 0 TEXTSIZE1: 40 TEXT2: RMSD: $RMSD - Pénalité de temps: $TIMEMALUS - Résultat final: $SCORE + P�nalit� de temps: $TIMEMALUS + R�sultat final: $SCORE TEXTTIME2: -1 TEXTCOLORRED2: 255 TEXTCOLORGREEN2: 64 @@ -70,10 +70,10 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 16 TEXT_COUNT: 1 -TEXT1: Bravo, vous avez termine $RANKème! +TEXT1: Bravo, vous avez termine $RANK�me! RMSD: $RMSD - Pénalité de temps: $TIMEMALUS - Résultat final: $SCORE + P�nalit� de temps: $TIMEMALUS + R�sultat final: $SCORE TEXTTIME1: 4000 TEXTCOLORRED1: 0 TEXTCOLORGREEN1: 255 diff --git a/examples/dokk/datafiles/tutorial_1/levelF.ini b/examples/dokk/datafiles/tutorial_1/levelF.ini index 53698a8c963ecee06355d45913fbd5dbc0e6462c..fc342bf93f7a881b13c26e0394a43c34eb69418f 100644 --- a/examples/dokk/datafiles/tutorial_1/levelF.ini +++ b/examples/dokk/datafiles/tutorial_1/levelF.ini @@ -18,22 +18,22 @@ TEXT1: Bonjour et bienvenue chez dokk, le jeu de docking. TEXTTIME1: 8000 TEXT2: Il s'agit du premier niveau d'entrainement. Vous allez apprendre -comment on peut changer la position d'une molécule en 3D. + comment on peut changer la position d'une mol�cule en 3D. TEXTTIME2: 8000 -TEXT3: Votre tâche est de amener le ligand (en vert) dans la bonne position -dans la protéine (en blanc). +TEXT3: Votre t�che est de amener le ligand (en vert) dans la bonne position + dans la prot�ine (en blanc). TEXTTIME3: 8000 -TEXT4: Vous pouvez déplacer le ligand avec le périphérique d'entrée 3D, -en déplaçant le joystick dans la direction appropriée. +TEXT4: Vous pouvez d�placer le ligand avec le p�riph�rique d'entr�e 3D, + en d�pla�ant le joystick dans la direction appropri�e. TEXTTIME4: 13000 TEXTIMG4: images/translation.png -TEXT5: Si vous avez des questions, n'hésitez pas à contacter un de nos professionnels. +TEXT5: Si vous avez des questions, n'h�sitez pas � contacter un de nos professionnels. TEXTTIME5: 5000 -TEXT6: Êtes-vous prêt? Vous avez 60 secondes. +TEXT6: �tes-vous pr�t? Vous avez 60 secondes. TEXTTIME6: 3000 TEXT7: C'est parti! @@ -68,8 +68,8 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 16 TEXT_COUNT: 1 -TEXT1: Malheureusement, vous n'avez pas réussi! Vous pouvez essayer à -nouveau pour terminer ce niveau. +TEXT1: Malheureusement, vous n'avez pas r�ussi! Vous pouvez essayer � + nouveau pour terminer ce niveau. TEXTTIME1: -1 TEXTCOLORRED1: 255 TEXTCOLORGREEN1: 64 @@ -84,7 +84,7 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 16 TEXT_COUNT: 1 -TEXT1: Bravo, vous avez réussi! Vous pouvez maintenant essayer le niveau suivant. +TEXT1: Bravo, vous avez r�ussi! Vous pouvez maintenant essayer le niveau suivant. TEXTTIME1: 8000 TEXTCOLORRED1: 0 TEXTCOLORGREEN1: 255 @@ -113,3 +113,4 @@ FRAMESKIP: 2 [Name] TEXT: No Save + diff --git a/examples/dokk/datafiles/tutorial_2/levelF.ini b/examples/dokk/datafiles/tutorial_2/levelF.ini index c923e651db20e30afb43fb839900760656d8d6a3..bccebc5f02c20ba30f8441e05227c9cc9d88d034 100644 --- a/examples/dokk/datafiles/tutorial_2/levelF.ini +++ b/examples/dokk/datafiles/tutorial_2/levelF.ini @@ -1,6 +1,6 @@ [Level] NAME: Tutorial 2 -DIFFICULTY: Entrainement avancé +DIFFICULTY: Entrainement avanc� TIME: 60000 SAVE: 0 SHOW_SOLUTION: 0 @@ -14,16 +14,16 @@ TEXTCOLORBLUE: 255 TEXTSIZE: 30 TEXT_QUICKSTART: 3 TEXT_COUNT: 6 -TEXT1: Très bien, vous avez compris le principe du jeu et vous avez déjà -réussi à déplacer le ligand. +TEXT1: Tr�s bien, vous avez compris le principe du jeu et vous avez d�j� + r�ussi � d�placer le ligand. TEXTTIME1: 3000 -TEXT2: Dans ce niveau du jeu, vous apprendrez comment le ligand peut être -tourné. Pour le faire, vous pouvez tourner et incliner votre joystick. +TEXT2: Dans ce niveau du jeu, vous apprendrez comment le ligand peut �tre + tourn�. Pour le faire, vous pouvez tourner et incliner votre joystick. TEXTTIME2: 13000 TEXTIMG2: images/rotation.png -TEXT3: Êtes-vous prêt? Cela deviendra un peu plus difficile. +TEXT3: �tes-vous pr�t? Cela deviendra un peu plus difficile. TEXTTIME3: 3000 TEXT4: 3 @@ -55,8 +55,8 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 16 TEXT_COUNT: 1 -TEXT1: Malheureusement, vous n'avez pas réussi! Vous pouvez essayer à -nouveau pour terminer ce niveau. +TEXT1: Malheureusement, vous n'avez pas r�ussi! Vous pouvez essayer � + nouveau pour terminer ce niveau. TEXTTIME1: -1 TEXTCOLORRED1: 255 TEXTCOLORGREEN1: 64 @@ -71,7 +71,7 @@ TEXTCOLORBLUE: 0 TEXTSIZE: 16 TEXT_COUNT: 1 -TEXT1: Bravo, vous avez terminé les niveaux d'entrainement avec succès! +TEXT1: Bravo, vous avez termin� les niveaux d'entrainement avec succ�s! TEXTTIME1: 8000 TEXTCOLORRED1: 0 TEXTCOLORGREEN1: 255 diff --git a/examples/dokk/dokk.py b/examples/dokk/dokk.py index c164f2a299b72ff95488ef85e171824734789cb5..fbdb4dc339b57b9cd92addc71682160e9d4ff0de 100644 --- a/examples/dokk/dokk.py +++ b/examples/dokk/dokk.py @@ -1,3 +1,8 @@ +import getopt +import sys + +from PyQt4 import QtGui + import glwin import level @@ -14,7 +19,8 @@ class Dokk(object): self._current_index = -1 self._current_level = None self._ready = True - + self._language="" + def SetLevels(self,levels): self._current_index = -1 if isinstance(levels, list): @@ -47,14 +53,58 @@ class Dokk(object): def GetLevel(self): return self._current_level + def GetLanguage(self): + return self._language + + def SetLanguage(self, lang): + lang_str = str(lang).upper() + if len(lang_str) > 0: + self._language = lang_str[0] + print self._language + else: + self._language = "" + def Start(self, args): + try: + opts, args = getopt.getopt(args[1:], "hfsl:", ["help", "fullscreen", "stereo", "language="]) + except getopt.GetoptError, err: + print str(err) # will print something like "option -a not recognized" + self._Usage() + QtGui.QApplication.exit() + sys.exit(2) + fullscreen = False + stereo = False + language = "" + for o, value in opts: + if o in ("-h", "--help"): + self._Usage() + QtGui.QApplication.exit() + sys.exit() + elif o in ("-f", "--fullscreen"): + fullscreen=True + elif o in ("-s", "--stereo"): + stereo=True + elif o in ("-l", "--language"): + language = value + else: + assert False, "unhandled option" + self.SetLanguage(language) self.NextLevel() - self.gl_win.Show(fullscreen=('--fullscreen' in args)) - if '--stereo' in args: - self.gl_win.SetStereo(1) + self.gl_win.Show(fullscreen) + self.gl_win.SetStereo(stereo) def _LoadLevel(self): if self._current_level is not None: self._current_level.Close() self._current_level = level.Level(self.levels_[self._current_index]) self.gl_win.SetLevel(self._current_level) + + def _Usage(self): + print """ +Usage: dokk [OPTIONS] + -h --help Display this usage message + -f --fullscreen Start dokk in fullscreen mode + -s --stereo Enable stereo view + -l <lang>, --language=<lang> Set language to <lang> +""" + diff --git a/examples/dokk/glwin.py b/examples/dokk/glwin.py index 747dfc2ea2c663a5a88a385341dfc4ec01d76fbb..a544bb42eb54d631bef99a3edc09b627487fe446 100644 --- a/examples/dokk/glwin.py +++ b/examples/dokk/glwin.py @@ -1,11 +1,14 @@ # -*- coding: iso-8859-15 -*- import math +import os from ost import gfx from PyQt4.QtGui import * from PyQt4.QtCore import * from PyQt4.QtOpenGL import * +from config import Config + from spnav_input import SpnavInputDevice from hud import HUD, HUDObject @@ -27,7 +30,8 @@ class DokkGLCanvas(QGLWidget): self.update_timer.start(UPDATE_INTERVAL) self.hud = HUD() - + self.config = None + self._lock_input = False QObject.connect(self.update_timer, SIGNAL("timeout()"), self.update) @@ -38,6 +42,8 @@ class DokkGLCanvas(QGLWidget): gfx.Scene().RenderGL() def SetLevel(self, level): + ini_file = "hud"+self.dokk.GetLanguage()+".ini" + self.config = Config(os.path.join('datafiles', ini_file)) self.spnav_input.SetLevel(level) def paintEvent(self, event): @@ -54,13 +60,13 @@ class DokkGLCanvas(QGLWidget): painter.drawRect(QRect(QPoint(0, 0), QSize(self.width(), 35))) painter.setPen(QPen(QColor(255,255,255), Qt.SolidLine)) painter.setFont(QFont("Verdana",20)) - painter.drawText(QPoint(10, 25), "Sie sind %.1f von der L�sung entfernt" % self.dokk.GetLevel().GetRMSD()) + painter.drawText(QPoint(10, 25), self.config.Text["RMSD"] % self.dokk.GetLevel().GetRMSD()) if self.dokk.GetLevel().IsIntroDone(): time_col=self.dokk.GetLevel().GetRemainingTime()/10 if time_col>1: time_col=1 painter.setPen(QPen(QColor(255,255*time_col,255*time_col), Qt.SolidLine)) - painter.drawText(QPoint(self.width()-250, 25), "noch %.0f Sekunden" % self.dokk.GetLevel().GetRemainingTime()) + painter.drawText(QPoint(self.width()-275, 25), self.config.Text["SECONDS"] % self.dokk.GetLevel().GetRemainingTime()) if self.hud is not None: self.hud.Paint(painter) self.dokk.GetLevel().CheckSolved() diff --git a/examples/dokk/level.py b/examples/dokk/level.py index a0e729b32ec1d574b3b1769b571cbd7a832b2d73..0cd665f6e2faafb0468dbcd4cbe2bc406f311c0c 100644 --- a/examples/dokk/level.py +++ b/examples/dokk/level.py @@ -34,7 +34,8 @@ class Level(QtCore.QObject): def Load(self): level_dir=os.path.join('datafiles', self.name_) - self.config = Config(os.path.join(level_dir, 'level.ini')) + ini_file = "level"+Dokk().GetLanguage()+".ini" + self.config = Config(os.path.join(level_dir, ini_file)) self.topten = TopTen(os.path.join(level_dir, 'top_ten.ini')) print 'Loading %s' % self.config.Level["NAME"] ligand_ent=io.LoadSDF(os.path.join(level_dir, 'ligand.sdf'))