# -*- coding: utf-8 -*- import pygame import random import MenuState import api.Image as Image from api.Game import CGame from api.GameState import CGameState from api.Button import CButton from api.Sprite2 import CSprite from api.Label import CLabel from api.MultiLabel import CMultiLabel from api.Points import CPoints from gettext import gettext as _ from assets.data import area2game2_data class CArea2Game2(CGameState): def __init__(self): CGameState.__init__(self) self.time = 0 self.mWheelList = [] self.mWheelUsed = [] self.mCurrentWheel = 0 self.mCurrentState = 0 self.mMaxWheels = 8 self.mBad = 0 self.mGood = 0 self.mQuestionShowed = False self.mQuestionAnswered = False self.mBackground = None self.mButtonBackA2G2 = None self.mBackground = Image.loadImage('assets/images/a2g2/a2game2.png', False) CGame().setBackground(self.mBackground) self.mButtonBackA2G2 = CButton() self.mButtonBackA2G2.set_bgColor((0x99, 0x99, 0x66)) self.mButtonBackA2G2.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonBackA2G2.set_center((110, 650)) self.mButtonBackA2G2.set_size((200, 40)) self.mButtonBackA2G2.set_text(_('Volver')) CGame().addChild(self.mButtonBackA2G2) self.mWheel = CSprite() self.mWheel.loadImage('assets/images/a2g2/rueda.png', False) self.mWheel.setXY(407, 50) CGame().addChild(self.mWheel) for i in range(8): w = CSprite() w.loadImage('assets/images/a2g2/rueda%s.png' % str(i), True) w.setXY(407, 50) self.mWheelList.append(w) self.mWheelUsed.append(w) CGame().addChild(self.mWheelList[0]) self.mButtonStop = CButton() self.mButtonStop.set_bgColor((0x99, 0x99, 0x66)) self.mButtonStop.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonStop.set_center((600, 475)) self.mButtonStop.set_size((200, 40)) self.mButtonStop.set_text(_('Stop')) CGame().addChild(self.mButtonStop) self.mLabelQuestion = CMultiLabel() #self.mLabelQuestion.set_bgColor((0x99, 0x50, 0x99)) #self.mLabelQuestion.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 13) self.mLabelQuestion.set_center((600, 500)) self.mLabelQuestion.set_size((600, 90)) self.mButtonTrue = CButton() self.mButtonTrue.set_bgColor((0x99, 0x99, 0x66)) self.mButtonTrue.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonTrue.set_center((460, 600)) self.mButtonTrue.set_size((200, 40)) self.mButtonTrue.set_text(_('Si')) self.mButtonFalse = CButton() self.mButtonFalse.set_bgColor((0x99, 0x99, 0x66)) self.mButtonFalse.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonFalse.set_center((740, 600)) self.mButtonFalse.set_size((200, 40)) self.mButtonFalse.set_text(_('No')) self.mPoints = CPoints() self.mPoints.setXY(200, 10) CGame().addChild(self.mPoints) self.flag = False def update(self): CGameState.update(self) if self.mButtonBackA2G2.clicked(): ms = MenuState.CMenuState() CGame().setState(ms) return if self.mCurrentState == 0: self.time = self.time + 1 if self.time > 5: self.time = 0 if not self.flag: CGame().removeChild(self.mWheelList[self.mCurrentWheel]) else: self.flag = False self.mCurrentWheel = self.mCurrentWheel + 1 if self.mCurrentWheel > self.mMaxWheels - 1: self.mCurrentWheel = 0 if len(self.mWheelList) > 0: CGame().addChild(self.mWheelList[self.mCurrentWheel]) if self.mMaxWheels == 1: self.mCurrentState = 1 elif self.mMaxWheels == 0: self.mCurrentState = 3 elif self.mButtonStop.clicked(): self.mCurrentState = 1 elif self.mCurrentState == 1: if self.mQuestionShowed == False: self.mTupleQuestion = area2game2_data.ITEMS[self.mCurrentWheel] self.mLabelQuestion.set_text(self.mTupleQuestion[0]) CGame().addChild(self.mLabelQuestion) CGame().addChild(self.mButtonTrue) CGame().addChild(self.mButtonFalse) CGame().removeChild(self.mButtonStop) self.mQuestionShowed = True elif (self.mQuestionAnswered == False): if self.mButtonTrue.clicked(): CGame().removeChild(self.mLabelQuestion) CGame().removeChild(self.mButtonTrue) CGame().removeChild(self.mButtonFalse) if self.mTupleQuestion[1] == True: self.mGood = self.mGood + 1 self.mPoints.set_goods(self.mGood) else: self.mBad = self.mBad + 1 self.mPoints.set_bads(self.mBad) self.mQuestionAnswered = True self.time = 0 elif self.mButtonFalse.clicked(): CGame().removeChild(self.mLabelQuestion) CGame().removeChild(self.mButtonTrue) CGame().removeChild(self.mButtonFalse) if self.mTupleQuestion[1] == False: self.mGood = self.mGood + 1 self.mPoints.set_goods(self.mGood) else: self.mBad = self.mBad + 1 self.mPoints.set_bads(self.mBad) self.mQuestionAnswered = True self.time = 0 elif self.mQuestionAnswered == True: #if self.time > 10: self.mWheelList.remove(self.mWheelList[self.mCurrentWheel]) self.mMaxWheels = self.mMaxWheels - 1 self.flag = True if self.mMaxWheels > 0: CGame().addChild(self.mButtonStop) self.mQuestionShowed = False self.time = 0 self.mCurrentState = 0 self.mQuestionAnswered = False elif self.mCurrentState == 3: pass def destroy(self): CGameState.destroy(self) CGame().removeChild(self.mButtonBackA2G2) CGame().removeChild(self.mButtonStop) for i in range(8): CGame().removeChild(self.mWheelUsed[i]) self.mWheelUsed[i] = None CGame().removeChild(self.mWheel) CGame().removeChild(self.mPoints) CGame().removeChild(self.mLabelQuestion) CGame().removeChild(self.mButtonTrue) CGame().removeChild(self.mButtonFalse) self.mButtonBackA2G2 = None self.mBackground = None self.mPoints = None self.mButtonTrue = None self.mButtonFalse = None print "CArea2Game2 destroy"