From ec2efa48cf2896f0b05d28ce9093273031b706d8 Mon Sep 17 00:00:00 2001 From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08> Date: Wed, 14 Apr 2010 10:21:49 +0000 Subject: [PATCH] dokk (the docking game): - Quick Start (2D Button) - Changed Introtimes git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1993 5a81b35b-ba03-0410-adc8-b2c5c5119f08 --- examples/dokk/config.py | 1 - examples/dokk/datafiles/dengue/level.ini | 17 ++++++++------- examples/dokk/datafiles/dengue/top_ten.ini | 8 +++++-- examples/dokk/datafiles/glyoxalase/level.ini | 19 ++++++++-------- examples/dokk/datafiles/retinol/level.ini | 13 ++++++----- examples/dokk/datafiles/thrombin/level.ini | 13 ++++++----- examples/dokk/datafiles/tutorial_1/level.ini | 23 ++++++++++---------- examples/dokk/datafiles/tutorial_2/level.ini | 17 ++++++++------- examples/dokk/dokk.py | 4 ++++ examples/dokk/level.py | 10 ++++++++- examples/dokk/level_intro.py | 3 +-- examples/dokk/level_messages.py | 19 +++++++++++++++- examples/dokk/spnav_input.py | 4 ++++ 13 files changed, 96 insertions(+), 55 deletions(-) diff --git a/examples/dokk/config.py b/examples/dokk/config.py index 7fb7a3efa..95ad90a89 100644 --- a/examples/dokk/config.py +++ b/examples/dokk/config.py @@ -54,7 +54,6 @@ class TopTen(): def IsTopTen(self,score): self._config.UpdateValues() try: - print score, float(self._config.Get(str(10))["SCORE"]) if score < float(self._config.Get(str(10))["SCORE"]): return True except AttributeError: diff --git a/examples/dokk/datafiles/dengue/level.ini b/examples/dokk/datafiles/dengue/level.ini index f974a1071..ef2411a18 100644 --- a/examples/dokk/datafiles/dengue/level.ini +++ b/examples/dokk/datafiles/dengue/level.ini @@ -11,47 +11,48 @@ TEXTCOLORRED: 255 TEXTCOLORGREEN: 255 TEXTCOLORBLUE: 255 TEXTSIZE: 16 +TEXT_QUICKSTART: 4 TEXT_COUNT: 8 TEXT1: So die �bungsphase ist vorbei.. Bei den kommenden Levels m�ssen sie den Liganden m�glichst gut am Protein andocken. -TEXTTIME1: 300 +TEXTTIME1: 3000 TEXT2: Sie k�nnen die aktuelle Score links oben ablesen. Wenn Sie mit der Score zufrieden sind, k�nnen Sie "FIT" dr�cken um das Level zu beenden. -TEXTTIME2: 800 +TEXTTIME2: 8000 TEXT3: Je schneller Sie ein Level absolvieren, umso kleiner wird der Zeitmalus der zu Ihrer score addiert wird. -TEXTTIME3: 800 +TEXTTIME3: 8000 TEXT4: Sind Sie bereit? Jetzt wird es ernst. -TEXTTIME4: 600 +TEXTTIME4: 3000 TEXT5: 3 -TEXTTIME5: 150 +TEXTTIME5: 1500 TEXTCOLORRED5: 255 TEXTCOLORGREEN5: 0 TEXTCOLORBLUE5: 0 TEXTSIZE5: 40 TEXT6: 2 -TEXTTIME6: 150 +TEXTTIME6: 1500 TEXTCOLORRED6: 255 TEXTCOLORGREEN6: 165 TEXTCOLORBLUE6: 0 TEXTSIZE6: 70 TEXT7: 1 -TEXTTIME7: 150 +TEXTTIME7: 1500 TEXTCOLORRED7: 255 TEXTCOLORGREEN7: 255 TEXTCOLORBLUE7: 0 TEXTSIZE7: 100 TEXT8: LOS! -TEXTTIME8: 150 +TEXTTIME8: 1500 TEXTCOLORRED8: 0 TEXTCOLORGREEN8: 255 TEXTCOLORBLUE8: 0 diff --git a/examples/dokk/datafiles/dengue/top_ten.ini b/examples/dokk/datafiles/dengue/top_ten.ini index c058d9263..fc382f20a 100644 --- a/examples/dokk/datafiles/dengue/top_ten.ini +++ b/examples/dokk/datafiles/dengue/top_ten.ini @@ -11,10 +11,14 @@ score = 1.34045518637 name = STU [5] -score = 2.80041636229 -name = AAA +score = 2.58003196716 +name = STU [4] score = 1.87384883563 name = BIO +[6] +score = 2.80041636229 +name = AAA + diff --git a/examples/dokk/datafiles/glyoxalase/level.ini b/examples/dokk/datafiles/glyoxalase/level.ini index c04c2027e..310601b23 100644 --- a/examples/dokk/datafiles/glyoxalase/level.ini +++ b/examples/dokk/datafiles/glyoxalase/level.ini @@ -11,47 +11,48 @@ TEXTCOLORRED: 255 TEXTCOLORGREEN: 255 TEXTCOLORBLUE: 255 TEXTSIZE: 16 +TEXT_QUICKSTART: 3 TEXT_COUNT: 7 TEXT1: Gesunder Optimismus ist gut.. -TEXTTIME1: 300 +TEXTTIME1: 3000 TEXT2: F�r dieses Level brauchen Sie jedoch mehr -TEXTTIME4: 600 +TEXTTIME4: 3000 TEXT3: 3 -TEXTTIME3: 150 +TEXTTIME3: 1500 TEXTCOLORRED3: 255 TEXTCOLORGREEN3: 0 TEXTCOLORBLUE3: 0 TEXTSIZE3: 40 TEXT4: 2 -TEXTTIME4: 150 +TEXTTIME4: 1500 TEXTCOLORRED4: 255 TEXTCOLORGREEN4: 0 TEXTCOLORBLUE4: 0 TEXTSIZE4: 70 TEXT5: 1 -TEXTTIME5: 150 +TEXTTIME5: 1500 TEXTCOLORRED5: 255 TEXTCOLORGREEN5: 0 TEXTCOLORBLUE5: 0 TEXTSIZE5: 100 TEXT6: Viel Gl�ck! -TEXTTIME6: 150 +TEXTTIME6: 1500 TEXTCOLORRED6: 255 TEXTCOLORGREEN6: 0 TEXTCOLORBLUE6: 0 -TEXTSIZE6: 100 +TEXTSIZE6: 80 TEXT7: (Sie werden es brauchen) -TEXTTIME7: 150 +TEXTTIME7: 1500 TEXTCOLORRED7: 255 TEXTCOLORGREEN7: 0 TEXTCOLORBLUE7: 0 -TEXTSIZE7: 80 +TEXTSIZE7: 70 [NTT] TEXTTIME: 200 diff --git a/examples/dokk/datafiles/retinol/level.ini b/examples/dokk/datafiles/retinol/level.ini index d76a3a8c0..d07e72e9e 100644 --- a/examples/dokk/datafiles/retinol/level.ini +++ b/examples/dokk/datafiles/retinol/level.ini @@ -11,37 +11,38 @@ TEXTCOLORRED: 255 TEXTCOLORGREEN: 255 TEXTCOLORBLUE: 255 TEXTSIZE: 16 +TEXT_QUICKSTART: 2 TEXT_COUNT: 6 TEXT1: Super sie haben es bis hier hin geschafft. Jetzt wird es richtig schwer. -TEXTTIME1: 300 +TEXTTIME1: 5000 TEXT2: Ich sehe Sie sind bereit... -TEXTTIME4: 600 +TEXTTIME4: 3000 TEXT3: 3 -TEXTTIME3: 150 +TEXTTIME3: 1500 TEXTCOLORRED3: 255 TEXTCOLORGREEN3: 0 TEXTCOLORBLUE3: 0 TEXTSIZE3: 40 TEXT4: 2 -TEXTTIME4: 150 +TEXTTIME4: 1500 TEXTCOLORRED4: 255 TEXTCOLORGREEN4: 165 TEXTCOLORBLUE4: 0 TEXTSIZE4: 70 TEXT5: 1 -TEXTTIME5: 150 +TEXTTIME5: 1500 TEXTCOLORRED5: 255 TEXTCOLORGREEN5: 255 TEXTCOLORBLUE5: 0 TEXTSIZE5: 100 TEXT6: LOS! -TEXTTIME6: 150 +TEXTTIME6: 1500 TEXTCOLORRED6: 0 TEXTCOLORGREEN6: 255 TEXTCOLORBLUE6: 0 diff --git a/examples/dokk/datafiles/thrombin/level.ini b/examples/dokk/datafiles/thrombin/level.ini index 4d39caa18..294b4df48 100644 --- a/examples/dokk/datafiles/thrombin/level.ini +++ b/examples/dokk/datafiles/thrombin/level.ini @@ -11,36 +11,37 @@ TEXTCOLORRED: 255 TEXTCOLORGREEN: 255 TEXTCOLORBLUE: 255 TEXTSIZE: 16 +TEXT_QUICKSTART: 2 TEXT_COUNT: 6 TEXT1: Ich denke Sie haben das Spielprinzip verstanden. -TEXTTIME1: 300 +TEXTTIME1: 3000 TEXT2: Gut, sind Sie bereit? Und schon gehts los. -TEXTTIME4: 600 +TEXTTIME4: 3000 TEXT3: 3 -TEXTTIME3: 150 +TEXTTIME3: 1500 TEXTCOLORRED3: 255 TEXTCOLORGREEN3: 0 TEXTCOLORBLUE3: 0 TEXTSIZE3: 40 TEXT4: 2 -TEXTTIME4: 150 +TEXTTIME4: 1500 TEXTCOLORRED4: 255 TEXTCOLORGREEN4: 165 TEXTCOLORBLUE4: 0 TEXTSIZE4: 70 TEXT5: 1 -TEXTTIME5: 150 +TEXTTIME5: 1500 TEXTCOLORRED5: 255 TEXTCOLORGREEN5: 255 TEXTCOLORBLUE5: 0 TEXTSIZE5: 100 TEXT6: LOS! -TEXTTIME6: 150 +TEXTTIME6: 1500 TEXTCOLORRED6: 0 TEXTCOLORGREEN6: 255 TEXTCOLORBLUE6: 0 diff --git a/examples/dokk/datafiles/tutorial_1/level.ini b/examples/dokk/datafiles/tutorial_1/level.ini index 82fde90d8..d9e932f7e 100644 --- a/examples/dokk/datafiles/tutorial_1/level.ini +++ b/examples/dokk/datafiles/tutorial_1/level.ini @@ -11,52 +11,53 @@ TEXTCOLORRED: 255 TEXTCOLORGREEN: 255 TEXTCOLORBLUE: 255 TEXTSIZE: 16 +TEXT_QUICKSTART: 6 TEXT_COUNT: 10 TEXT1: Hallo und herzlich wilkommen zu dokk dem Docking-Spiel -TEXTTIME1: 300 +TEXTTIME1: 3000 TEXT2: Ihre Aufgabe ist es, den Liganden (gr�n), in die richtige Position auf dem Protein (weiss) zu bringen -TEXTTIME2: 800 +TEXTTIME2: 8000 TEXT3: Dieses erste Level ist ein �bungslevel. Sie lernen hier, wie man die Position des Liganden ver�ndern kann. -TEXTTIME3: 800 +TEXTTIME3: 8000 TEXT4: Sie k�nnen mit dem 3D-Input Device den Liganden verschieben, indem Sie den Joystick in die entsprechende Richtung bewegen. -TEXTTIME4: 800 +TEXTTIME4: 8000 TEXT5: Falls Fragen bestehen, k�nnen Sie sich gerne an eine unserer Fachkr�fte wenden. -TEXTTIME5: 500 +TEXTTIME5: 5000 TEXT6: Sind Sie bereit? Es geht los. -TEXTTIME6: 600 +TEXTTIME6: 3000 TEXT7: 3 -TEXTTIME7: 150 +TEXTTIME7: 1500 TEXTCOLORRED7: 255 TEXTCOLORGREEN7: 0 TEXTCOLORBLUE7: 0 TEXTSIZE7: 40 TEXT8: 2 -TEXTTIME8: 150 +TEXTTIME8: 1500 TEXTCOLORRED8: 255 TEXTCOLORGREEN8: 165 TEXTCOLORBLUE8: 0 TEXTSIZE8: 70 TEXT9: 1 -TEXTTIME9: 150 +TEXTTIME9: 1500 TEXTCOLORRED9: 255 TEXTCOLORGREEN9: 255 TEXTCOLORBLUE9: 0 TEXTSIZE9: 100 TEXT10: LOS! -TEXTTIME10: 150 +TEXTTIME10: 1500 TEXTCOLORRED10: 0 TEXTCOLORGREEN10: 255 TEXTCOLORBLUE10: 0 @@ -71,7 +72,7 @@ TEXTSIZE: 16 TEXT_COUNT: 1 TEXT1: Leider haben Sie es nicht geschafft! - Sie k�nnen erneut veruschen, dieses Level zu absolvieren + Sie k�nnen erneut versuchen, dieses Level zu absolvieren TEXTTIME1: -1 TEXTCOLORRED1: 255 TEXTCOLORGREEN1: 64 diff --git a/examples/dokk/datafiles/tutorial_2/level.ini b/examples/dokk/datafiles/tutorial_2/level.ini index 24e52b931..a0a73b23b 100644 --- a/examples/dokk/datafiles/tutorial_2/level.ini +++ b/examples/dokk/datafiles/tutorial_2/level.ini @@ -11,48 +11,49 @@ TEXTCOLORRED: 255 TEXTCOLORGREEN: 255 TEXTCOLORBLUE: 255 TEXTSIZE: 16 +TEXT_QUICKSTART: 3 TEXT_COUNT: 7 TEXT1: Sehr gut Sie haben das Spielprinzip verstanden und k�nnen den Liganden bereits verschieben -TEXTTIME1: 300 +TEXTTIME1: 3000 TEXT2: In diesem �bungslevel lernen Sie, wie der Ligand rotiert werden kann. Dazu k�nnen Sie den Joystick drehen oder ziehen und bewegen. -TEXTTIME2: 800 +TEXTTIME2: 8000 TEXT3: Sind Sie bereit? Es wird ein wenig schwerer. -TEXTTIME3: 600 +TEXTTIME3: 3000 TEXT4: 3 -TEXTTIME4: 150 +TEXTTIME4: 1500 TEXTCOLORRED4: 255 TEXTCOLORGREEN4: 0 TEXTCOLORBLUE4: 0 TEXTSIZE4: 40 TEXT5: 2 -TEXTTIME5: 150 +TEXTTIME5: 1500 TEXTCOLORRED5: 255 TEXTCOLORGREEN5: 165 TEXTCOLORBLUE5: 0 TEXTSIZE5: 70 TEXT6: 1 -TEXTTIME6: 150 +TEXTTIME6: 1500 TEXTCOLORRED6: 255 TEXTCOLORGREEN6: 255 TEXTCOLORBLUE6: 0 TEXTSIZE6: 100 TEXT7: LOS! -TEXTTIME7: 150 +TEXTTIME7: 1500 TEXTCOLORRED7: 0 TEXTCOLORGREEN7: 255 TEXTCOLORBLUE7: 0 TEXTSIZE7: 130 [NTT] -TEXTTIME: 200 +TEXTTIME: 2000 TEXTCOLORRED: 255 TEXTCOLORGREEN: 0 TEXTCOLORBLUE: 0 diff --git a/examples/dokk/dokk.py b/examples/dokk/dokk.py index f3eb30515..ea7422fb4 100644 --- a/examples/dokk/dokk.py +++ b/examples/dokk/dokk.py @@ -34,6 +34,10 @@ class Dokk(object): else: self._current_index +=1 + def Restart(self): + self._current_index = -1 + self.NextLevel() + def GetLevel(self): return self._current_level diff --git a/examples/dokk/level.py b/examples/dokk/level.py index ef1998a79..1217ff527 100644 --- a/examples/dokk/level.py +++ b/examples/dokk/level.py @@ -112,6 +112,7 @@ class Level(QtCore.QObject): return 1 def Reset(self): + Dokk().gl_win.SetLockInput(True) self.endtime = 0 self.stop_time = 0 self._started = False @@ -157,7 +158,14 @@ class Level(QtCore.QObject): self.UpdateScores() self.hud_level_intro.Start() self._started = True - self.emit(QtCore.SIGNAL("Started()")) + self.emit(QtCore.SIGNAL("Started()")) + + def QuickBegin(self): + self.Reset() + self.UpdateScores() + self.hud_level_intro.QuickStart() + self._started = True + self.emit(QtCore.SIGNAL("Started()")) def Close(self): gfx.Scene().SetTransform(self.transform_) diff --git a/examples/dokk/level_intro.py b/examples/dokk/level_intro.py index b3c99134c..86b958c8a 100644 --- a/examples/dokk/level_intro.py +++ b/examples/dokk/level_intro.py @@ -56,7 +56,6 @@ class LevelIntro(QtCore.QObject): self.text.color=self.text_list[self.cur_text][2] self.text.font.setPointSize(self.text_list[self.cur_text][3]) self.text.Reset() - print (dokk.gl_win.Width()/2.0) - (len(self.text.text)*10) else: self.cur_text = -1 - self.cur_text+=1 \ No newline at end of file + self.cur_text+=1 diff --git a/examples/dokk/level_messages.py b/examples/dokk/level_messages.py index 01136e2c7..e20c18b4f 100644 --- a/examples/dokk/level_messages.py +++ b/examples/dokk/level_messages.py @@ -39,12 +39,21 @@ class LevelMessages(QtCore.QObject): def Start(self): self.Reset() + self._Begin() + + def _Begin(self): + time = 0 + if self.cur_text == 0: + time = self.total_time + else: + for i in range(self.cur_text,len(self.text_list)): + time += self.text_list[i][1] dokk = Dokk() font = QtGui.QFont("Verdana", 15); rect = QtCore.QRect(QtCore.QPoint(60, 60), QtCore.QSize(dokk.gl_win.Width()-120, dokk.gl_win.Height()-120)) self.text = RectTextHUDObject(text="", rect=rect, time=0, font=font) QtCore.QObject.connect(self.text, QtCore.SIGNAL("Finished()"), self.NextMessage) - self.bg = RectHUDObject(self.total_time,rect, bg_color=QtGui.QColor(128,128,128,200)) + self.bg = RectHUDObject(time,rect, bg_color=QtGui.QColor(128,128,128,200)) dokk.gl_win.AddHUDObject(self.bg) dokk.gl_win.AddHUDObject(self.text) @@ -70,7 +79,15 @@ class LevelMessages(QtCore.QObject): class LevelIntro(LevelMessages): def __init__(self, config, parent=None): LevelMessages.__init__(self,config.INTRO, parent) + try: + self.quick_start = int(config.INTRO["TEXT_QUICKSTART"])-1 + except: + self.quick_start = 0 + def QuickStart(self): + self.cur_text = self.quick_start + self._Begin() + class LevelEnd(LevelMessages): def __init__(self, messages, parent=None): LevelMessages.__init__(self,messages, parent) diff --git a/examples/dokk/spnav_input.py b/examples/dokk/spnav_input.py index d079fe6c4..a016a6ffb 100644 --- a/examples/dokk/spnav_input.py +++ b/examples/dokk/spnav_input.py @@ -66,10 +66,14 @@ class SpnavInputDevice(QtCore.QObject): dokk.Dokk().NextLevel() elif button == 6: QtGui.QApplication.exit() + elif button == 8: + dokk.Dokk().Restart() elif button == 13: self.level.ResetPos() elif button == 12 and not self.level.IsStarted(): self.level.Solve() + elif button == 14: + self.level.QuickBegin() if (not self._lock_input): if button == 0: -- GitLab