# -*- coding: utf-8 -*- import pygame import MenuState from api.GameState import CGameState from api.Game import CGame from api.Button import CButton import api.Image as CImage from api.Sprite2 import CSprite import api.Image as Image from api.Mouse import CMouse import api.Math as CMath from BoyHall import CBoyHall from Area1Game1 import CArea1Game1 class CHallState(CGameState): mBackground = None mBackgroundList = [] mInstructions = None #mX = 10 mButtonBack = None mCurrentSelectedArea = 0 mArea1 = None #mFrameDoor0101 = [] AREA1_POLYGON = [(424,90), (764,90), (764, 700), (424,700)] mPlayer = None mtext = None def init(self): CGameState.init(self) #self.mInstructions = CMultiLabel() #CGame().addChild(self.mInstructions) #print self.mX self.mPartida = None self.mCurrentSelectedArea = 0 self.mButtonBack = CButton() self.mButtonBack.set_bgColor((0x99, 0x99, 0x66)) self.mButtonBack.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonBack.set_center((100, 100)) self.mButtonBack.set_size((200, 40)) self.mButtonBack.set_text("Volver") CGame().addChild(self.mButtonBack) self.mBackgroundList.append(CImage.loadImage('assets/images/hall/A1-Pasillo-1.png', False)) self.mBackgroundList.append(CImage.loadImage('assets/images/hall/A1-Pasillo-2.png', False)) self.mBackgroundList.append(CImage.loadImage('assets/images/hall/A1-Pasillo-3.png', False)) self.mBackgroundList.append(CImage.loadImage('assets/images/hall/A1-Pasillo-4.png', False)) self.mBackgroundList.append(CImage.loadImage('assets/images/hall/A1-Pasillo-5.png', False)) self.mBackgroundList.append(CImage.loadImage('assets/images/hall/A1-Pasillo-6.png', False)) CGame().setBackground(self.mBackgroundList[self.mCurrentSelectedArea]) self.mDoor = CSprite() self.mDoor.setXY(400, 50) self.mFrameImageDoor = Image.loadImage('assets/images/hall/A1-puerta-resaltada.png') self.mDoor.setImage(self.mFrameImageDoor) self.mDoorIs = False self.mStar = CSprite() #self.mStar.setXY(400, 50) self.mStar.setXY(730, 40) star = Image.loadImage('assets/images/hall/star1.png') self.mStar.setImage(star) CGame().addChild(self.mStar) self.mLeftArrow = CSprite() self.mLeftArrow.setXY(10, 400) self.mImageLeftArrow = Image.loadImage('assets/images/hall/arrow.png') self.mLeftArrow.setImage(self.mImageLeftArrow) CGame().addChild(self.mLeftArrow) self.mRightArrow = CSprite() self.mRightArrow.setXY(1060, 400) self.mImageRightArrow = pygame.transform.flip(self.mImageLeftArrow, True, False) self.mRightArrow.setImage(self.mImageRightArrow) CGame().addChild(self.mRightArrow) def update(self): #print "menu update" CGameState.update(self) if self.mButtonBack.clicked(): print "clicked back......" ms = MenuState.CMenuState() CGame().setState(ms) return elif self.mLeftArrow.clicked(): print 'previous game' self.mCurrentSelectedArea = self.mCurrentSelectedArea - 1 if self.mCurrentSelectedArea < 0: self.mCurrentSelectedArea = 5 #self.mPlayer.setVelXY(-20, 0) self.mPlayer.setXY(1000, 500) #else: CGame().setBackground(self.mBackgroundList[self.mCurrentSelectedArea]) self.mPlayer.mDestX = 1000 self.mPlayer.mAnim.init(6, 3, True, 3) self.mPlayer.mLastSense = 0 self.mPlayer.setVelXY(-5, 0) self.mPlayer.setXY(1400, 500) elif self.mRightArrow.clicked(): print 'next game' self.mCurrentSelectedArea = self.mCurrentSelectedArea + 1 if self.mCurrentSelectedArea > 5: self.mCurrentSelectedArea = 0 #self.mPlayer.setVelXY(20, 0) self.mPlayer.setXY(200, 500) #else: CGame().setBackground(self.mBackgroundList[self.mCurrentSelectedArea]) self.mPlayer.mDestX = 200 self.mPlayer.mAnim.init(3, 3, True, 0) self.mPlayer.mLastSense = 1 self.mPlayer.setVelXY(5, 0) self.mPlayer.setXY(-200, 500) elif (CMath.pointInsidePolygon(CMouse().getX(), CMouse().getY(), self.AREA1_POLYGON)): if not(self.mDoorIs): CGame().addChild(self.mDoor) self.mDoorIs = True if (CMouse().release()): if self.mCurrentSelectedArea == 0: a1g1 = CArea1Game1() CGame().setState(a1g1) else: if self.mDoorIs: CGame().removeChild(self.mDoor) self.mDoorIs = False def setPartida(self, aPartida): self.mPartida = aPartida #TODO: remove from here? character = CGame().getCharacter(self.mPartida) print 'get character of CGAME', character, self.mPartida self.mPlayer = CBoyHall(character) CGame().addChild(self.mPlayer) def destroy(self): #CGame().removeChild(self.mText) #self.mText = None CGameState.destroy(self) CGame().removeChild(self.mButtonBack) self.mButtonBack = None CGame().removeChild(self.mDoor) #self.mDoor.destroy() self.mDoor = None CGame().removeChild(self.mLeftArrow) self.mLeftArrow.destroy() self.mLeftArrow = None CGame().removeChild(self.mRightArrow) self.mRightArrow.destroy() self.mRightArrow = None CGame().removeChild(self.mPlayer) self.mPlayer.destroy() self.mPlayer = None CGame().removeChild(self.mStar) self.mStar = None self.mBackground = None def doEvents(self, aEvent): print aEvent.type