From a266c1f03e8a1a71c464552af29f5366b7868d5d Mon Sep 17 00:00:00 2001 From: Alan Aguiar Date: Sun, 09 Feb 2014 14:30:41 +0000 Subject: add help in a1g6 --- (limited to 'src') diff --git a/src/assets/data/area1game6_data.py b/src/assets/data/area1game6_data.py index f9be853..17d4481 100644 --- a/src/assets/data/area1game6_data.py +++ b/src/assets/data/area1game6_data.py @@ -3,8 +3,9 @@ from gettext import gettext as _ +HELP = _('Completa las palabras cruzadas\nmirando las definiciones que aparecen.') -HELP = { +PUZZLE_HELP = { 0: _('primer menstruación en\nlas mujeres, sucede\nentre los 10 y 17 años'), 1: _('primera eyaculación,\nexpulsión de semen\nque se produce\ndurante el sueño'), 2: _('célula con cola,\ngameto masculino\nque produce el testículo'), diff --git a/src/game/Area1Game1.py b/src/game/Area1Game1.py index 496983c..9578e97 100644 --- a/src/game/Area1Game1.py +++ b/src/game/Area1Game1.py @@ -153,7 +153,7 @@ class CArea1Game1(CGameState): self.mActivePiece = None self.mBad = 0 self.mGood = 0 - self.mDialog = None + self.mEndDialog = None self.mBBsetted = False self.mNBsetted = True self.mBHsetted = False @@ -330,10 +330,11 @@ class CArea1Game1(CGameState): self.mAlphaSet = True CGame().addChild(self.mAlpha) msg = _('Has terminado con %s respuestas bien') % self.mGood - self.mDialog = Globe((450, 100), text=unicode(msg, 'UTF-8'), pico=None) - self.mDialog.set_center((600, 300)) - CGame().addChild(self.mDialog) + self.mEndDialog = Globe((450, 100), text=unicode(msg, 'UTF-8'), pico=None) + self.mEndDialog.set_center((600, 300)) + CGame().addChild(self.mEndDialog) CGame().addChild(self.mButtonAccept) + else: if self.mButtonAccept.mouseOver(): self.mButtonAccept.set_bgColor(OVER_COLOR) @@ -363,6 +364,9 @@ class CArea1Game1(CGameState): CGame().removeChild(self.mBox) CGame().removeChild(self.mElisa) CGame().removeChild(self.mJuan) + CGame().removeChild(self.mAlpha) + CGame().removeChild(self.mEndDialog) + CGame().removeChild(self.mButtonAccept) self.mPoints = None for p in self.mListPieces: @@ -374,6 +378,4 @@ class CArea1Game1(CGameState): self.mButtonHelp = None self.mBackground = None - CGame().removeChild(self.mAlpha) - CGame().removeChild(self.mDialog) - CGame().removeChild(self.mButtonAccept) + diff --git a/src/game/Area1Game6.py b/src/game/Area1Game6.py index ff440db..efd6065 100644 --- a/src/game/Area1Game6.py +++ b/src/game/Area1Game6.py @@ -10,7 +10,10 @@ import api.Image as Image from api.Vector import CVector from api.Game import CGame from api.GameState import CGameState +from api.Button import CButton +from api.Globe import Globe import HallState +from gettext import gettext as _ from assets.data import area1game6_data @@ -35,6 +38,11 @@ WORD5b = [(DX + 400, DY + 350), (DX + 600, DY + 400)] WORD6 = [(DX + 150, DY + 500), (DX + 350, DY + 550)] WORD7 = [(DX + 350, DY + 0), (DX + 400, DY + 600)] +OVER_COLOR = (255, 0, 0) +NORMAL_COLOR = (255, 125, 50) + +GOODS = 8 +BADS = 4 #Piece class hereda de CSprite class Piece(CSprite): @@ -142,11 +150,18 @@ class CArea1Game6(CGameState): #mX = 10 self.mButtonPlay = None + self.mEndDialog = None self.mListHelps = [] self.mListPieces = [] self.mListWords = [] self.mActivePiece = None - self.dic_help = {} + self.mAlphaSet = True + self.mHelpShowed = True + + self.mBBsetted = False + self.mNBsetted = True + self.mBHsetted = False + self.mNHsetted = True self.mHelpActive = None self.mHelpPrevious = None @@ -156,10 +171,7 @@ class CArea1Game6(CGameState): for i in range(10): self.mListHelps.insert(i, None) - - self.mBsetted = False - self.mNsetted = True - + self.mBackImageN = Image.loadImage('assets/images/back.png') self.mBackImageB = Image.loadImage('assets/images/back_big.png') @@ -256,61 +268,143 @@ class CArea1Game6(CGameState): CGame().addChild(piece) - self.dic_help = area1game6_data.HELP - self.list_temp = self.dic_help.keys() + dic_help = area1game6_data.PUZZLE_HELP + #self.list_temp = self.dic_help.keys() font28 = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 28) self.mListHelps = [] # Label with the Help (for mouseover) - for i in range(7): + for i in dic_help: l = CMultiLabel() l.bgColor = (255, 125, 50) l.font = font28 l.center = (DX + 910, DY + 75) l.size = (350, 150) - l.text = unicode(self.dic_help[i], 'UTF-8') + l.text = unicode(dic_help[i], 'UTF-8') l._update_image() self.mListHelps.append(l) self.mPoints = CPoints(100, 10) CGame().addChild(self.mPoints) + # help button + self.mHelpImageN = Image.loadImage('assets/images/help.png') + self.mHelpImageB = Image.loadImage('assets/images/help_big.png') + + self.mButtonHelp = CSprite(1110, 30) + self.mButtonHelp.setRegistrationPointOffset(22, 22) + self.mButtonHelp.setImage(self.mHelpImageN) + CGame().addChild(self.mButtonHelp) + + alphasurface = pygame.Surface((1200,900)) + alphasurface.convert() + alphasurface.fill((100,100,100)) + alphasurface.set_alpha(200) + + self.mAlpha = CSprite(0, 0) + self.mAlpha.setImage(alphasurface) + CGame().addChild(self.mAlpha) + + self.mButtonAccept = CButton() + self.mButtonAccept.bgColor = NORMAL_COLOR + self.mButtonAccept.font = font28 + self.mButtonAccept.center = (600, 400) + self.mButtonAccept.size = (200, 40) + self.mButtonAccept.set_text(_('Aceptar')) + CGame().addChild(self.mButtonAccept) + + msg = area1game6_data.HELP + self.mInstructions = Globe((450, 150), text=unicode(msg, 'UTF-8'), pico=None) + self.mInstructions.set_center((600, 300)) + CGame().addChild(self.mInstructions) def update(self): CGameState.update(self) - if self.mButtonBack.mouseOver(): - if not(self.mBsetted): - self.mBsetted = True - self.mNsetted = False - self.mButtonBack.setRegistrationPointOffset(27, 27) - self.mButtonBack.setImage(self.mBackImageB) - else: - if not(self.mNsetted): - self.mBsetted = False - self.mNSetted = True - self.mButtonBack.setRegistrationPointOffset(22, 22) - self.mButtonBack.setImage(self.mBackImageN) + if not(self.mAlphaSet): + + if self.mButtonBack.mouseOver(): + if not(self.mBBsetted): + self.mBBsetted = True + self.mNBsetted = False + self.mButtonBack.setRegistrationPointOffset(27, 27) + self.mButtonBack.setImage(self.mBackImageB) + else: + if not(self.mNBsetted): + self.mBBsetted = False + self.mNBSetted = True + self.mButtonBack.setRegistrationPointOffset(22, 22) + self.mButtonBack.setImage(self.mBackImageN) + + if self.mButtonHelp.mouseOver(): + if not(self.mBHsetted): + self.mBHsetted = True + self.mNHsetted = False + self.mButtonHelp.setRegistrationPointOffset(27, 27) + self.mButtonHelp.setImage(self.mHelpImageB) + else: + if not(self.mNHsetted): + self.mBHsetted = False + self.mNHSetted = True + self.mButtonHelp.setRegistrationPointOffset(22, 22) + self.mButtonHelp.setImage(self.mHelpImageN) - if self.mButtonBack.clicked(): - hs = HallState.CHallState() - CGame().setState(hs) - hs.setCurrentGame(5) - return - - x = CMouse().getX() - y = CMouse().getY() - - self.mHelpActive = self._get_help(x, y) - - # this optimize the repetitive remove/add the same sprite - if not (self.mHelpPrevious == self.mHelpActive): - if self.mHelpPrevious is not None: - CGame().removeChild(self.mListHelps[self.mHelpPrevious]) - if self.mHelpActive is not None: - CGame().addChild(self.mListHelps[self.mHelpActive]) - self.mHelpPrevious = self.mHelpActive + if self.mButtonBack.clicked(): + hs = HallState.CHallState() + CGame().setState(hs) + hs.setCurrentGame(5) + return + + if self.mButtonHelp.clicked(): + self.mAlphaSet = True + self.mHelpShowed = True + CGame().addChild(self.mAlpha) + CGame().addChild(self.mInstructions) + CGame().addChild(self.mButtonAccept) + return + + x = CMouse().getX() + y = CMouse().getY() + + self.mHelpActive = self._get_help(x, y) + + # this optimize the repetitive remove/add the same sprite + if not (self.mHelpPrevious == self.mHelpActive): + if self.mHelpPrevious is not None: + CGame().removeChild(self.mListHelps[self.mHelpPrevious]) + if self.mHelpActive is not None: + CGame().addChild(self.mListHelps[self.mHelpActive]) + self.mHelpPrevious = self.mHelpActive + + if (self.mGood == GOODS) or (self.mBad > BADS): + self.mAlphaSet = True + CGame().addChild(self.mAlpha) + msg = _('Has terminado con %s respuestas bien') % self.mGood + self.mEndDialog = Globe((450, 100), text=unicode(msg, 'UTF-8'), pico=None) + self.mEndDialog.set_center((600, 300)) + CGame().addChild(self.mEndDialog) + CGame().addChild(self.mButtonAccept) + + else: + if self.mButtonAccept.mouseOver(): + self.mButtonAccept.set_bgColor(OVER_COLOR) + else: + self.mButtonAccept.set_bgColor(NORMAL_COLOR) + + if self.mButtonAccept.clicked(): + if self.mHelpShowed: + self.mAlphaSet = False + self.mHelpShowed = False + self.mButtonAccept.set_bgColor(NORMAL_COLOR) + CGame().removeChild(self.mAlpha) + CGame().removeChild(self.mInstructions) + CGame().removeChild(self.mButtonAccept) + else: + hs = HallState.CHallState() + CGame().setState(hs) + hs.setCurrentGame(5) + return def _get_help(self, x, y): if CMath.pointInsideRectangle(x,y, WORD1): @@ -332,16 +426,24 @@ class CArea1Game6(CGameState): def destroy(self): CGameState.destroy(self) + CGame().removeChild(self.mEndDialog) CGame().removeChild(self.mButtonBack) + CGame().removeChild(self.mButtonHelp) CGame().removeChild(self.mPoints) CGame().removeChild(self.mBase) - # remove pieces from the game + CGame().removeChild(self.mAlpha) + CGame().removeChild(self.mInstructions) + CGame().removeChild(self.mButtonAccept) + for piece in self.mListPieces: CGame().removeChild(piece) piece = None self.mListPieces = None - if self.mHelpActive: - CGame().removeChild(self.mHelpActive) + + for help in self.mListHelps: + CGame().removeChild(help) + self.mListHelps = None + self.mButtonBack = None self.mBackground = None self.mWord01 = None -- cgit v0.9.1