# -*- coding: utf-8 -*- import pygame import MenuState from api.GameState import CGameState from api.MultiLabel import CMultiLabel from api.Game import CGame from api.Sprite2 import CSprite import api.Image as Image from api.Mouse import CMouse import api.Math as CMath from HallState import CHallState from assets.data import selectArea_data AREA1_POLYGON = [(70, 233), (344, 208), (505, 246), (505, 400), (212, 536), (70, 440)] AREA2_POLYGON = [(558, 379), (1113, 665), (342, 834), (124, 579)] AREA3_POLYGON = [(838, 155), (1034, 143), (1150, 240), (1133, 397), (927, 436), (749, 372), (746, 222)] class CSelectAreaState(CGameState): def init(self): CGameState.init(self) self.mBackground = Image.loadImage('assets/images/selectArea/background.jpg', False) CGame().setBackground(self.mBackground) self.mBsetted = False self.mNsetted = True self.mBackImageN = Image.loadImage('assets/images/back.png') self.mBackImageB = Image.loadImage('assets/images/back_big.png') self.mButtonBack = CSprite() self.mButtonBack.setRegistrationPointOffset(22, 22) self.mButtonBack.setXY(1170, 30) self.mButtonBack.setImage(self.mBackImageN) CGame().addChild(self.mButtonBack) self.mAreas_list = [] for a in selectArea_data.AREAS: self.mAreas_list.append(unicode(a, 'UTF-8')) #escuela self.mArea1 = CSprite() self.mArea1.setXY(55, 193) self.mFrameImageArea1 = Image.loadImage('assets/images/selectArea/M-resaltado-A1.png', True) self.mArea1.setImage(self.mFrameImageArea1) self.mArea1Is = False self.mLabelA1 = CMultiLabel() self.mLabelA1.bgColor = (255, 125, 50) self.mLabelA1.fgColor = (0xFF, 0xFF, 0xFF) self.mLabelA1.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 28) self.mLabelA1.set_center((300, 320)) self.mLabelA1.set_size((320, 80)) self.mLabelA1.set_text(self.mAreas_list[0]) #patio self.mArea2 = CSprite() self.mArea2.setXY(110, 380) self.mFrameImageArea2 = Image.loadImage('assets/images/selectArea/M-resaltado-A2.png', True) self.mArea2.setImage(self.mFrameImageArea2) self.mArea2Is = False self.mLabelA2 = CMultiLabel() self.mLabelA2.bgColor = (255, 125, 50) self.mLabelA2.fgColor = (0xFF, 0xFF, 0xFF) self.mLabelA2.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 28) self.mLabelA2.set_center((600, 600)) self.mLabelA2.set_size((350, 80)) self.mLabelA2.set_text(self.mAreas_list[1]) #casa self.mArea3 = CSprite() self.mArea3.setXY(705, 105) self.mFrameImageArea3 = Image.loadImage('assets/images/selectArea/M-resaltado-A3.png', True) self.mArea3.setImage(self.mFrameImageArea3) self.mArea3Is = False self.mLabelA3 = CMultiLabel() self.mLabelA3.bgColor = (255, 125, 50) self.mLabelA3.fgColor = (0xFF, 0xFF, 0xFF) self.mLabelA3.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 28) self.mLabelA3.set_center((950, 300)) self.mLabelA3.set_size((280, 80)) self.mLabelA3.set_text(self.mAreas_list[2]) 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 self.mButtonBack.clicked(): ms = MenuState.CMenuState() CGame().setState(ms) return x = CMouse().getX() y = CMouse().getY() if (CMath.pointInsidePolygon(x, y, AREA1_POLYGON)): if not(self.mArea1Is): CGame().addChild(self.mArea1) CGame().addChild(self.mLabelA1) self.mArea1Is = True if (CMouse().release()): hs = CHallState() CGame().setState(hs) hs.setCurrentGame(0) return else: if self.mArea1Is: CGame().removeChild(self.mArea1) CGame().removeChild(self.mLabelA1) self.mArea1Is = False if (CMath.pointInsidePolygon(x, y, AREA2_POLYGON)): if not(self.mArea2Is): CGame().addChild(self.mArea2) CGame().addChild(self.mLabelA2) self.mArea2Is = True if (CMouse().release()): #hs = CHallState() #CGame().setState(hs) return else: if self.mArea2Is: CGame().removeChild(self.mArea2) CGame().removeChild(self.mLabelA2) self.mArea2Is = False if (CMath.pointInsidePolygon(x, y, AREA3_POLYGON)): if not(self.mArea3Is): CGame().addChild(self.mArea3) CGame().addChild(self.mLabelA3) self.mArea3Is = True if (CMouse().release()): #hs = CHallState() #CGame().setState(hs) return else: if self.mArea3Is: CGame().removeChild(self.mArea3) CGame().removeChild(self.mLabelA3) self.mArea3Is = False def destroy(self): CGameState.destroy(self) CGame().removeChild(self.mButtonBack) self.mButtonBack = None CGame().removeChild(self.mArea1) CGame().removeChild(self.mLabelA1) self.mArea1.destroy() self.mArea1 = None self.mFrameImageArea1 = None CGame().removeChild(self.mArea2) CGame().removeChild(self.mLabelA2) self.mArea2.destroy() self.mArea2 = None self.mFrameImageArea2 = None CGame().removeChild(self.mArea3) CGame().removeChild(self.mLabelA3) self.mArea3.destroy() self.mArea3 = None self.mFrameImageArea3 = None self.mBackground = None