class Fase8(GameState): def out (self): self.updateState = True self.NextCurrentState = "Quit" def back (self): self.updateState = True self.NextCurrentState = self.StateTemp[2] self.effect =1 def next(self): self.updateState = True self.effect = 0 pass def help (self): print "Help" pass def __init__(self): #Carregando o vetor da fase pelo construtor self.backGround = Object("src/Fases/Fase8/fundo.png") self.StateTemp = ["Fase8","Fase10","Fase6"] self.NextCurrentState = self.StateTemp[0] self.updateState = False self.effect = 0 self.MainObjects = [ObjectEvent((925,100), "src/Fases/Botoes/btnSetaDireita.png", "src/Fases/Botoes/btnSetaDireita_move.png", "src/Fases/Botoes/btnSetaDireita_click.png",self.next), ObjectEvent((15,100), "src/Fases/Botoes/btnSetaEsquerda.png", "src/Fases/Botoes/btnSetaEsquerda_move.png", "src/Fases/Botoes/btnSetaEsquerda_click.png",self.back), ObjectEvent((870,15),"src/Fases/Botoes/btnAjuda.png", "src/Fases/Botoes/btnAjuda_move.png", "src/Fases/Botoes/btnAjuda_click.png",self.help), ObjectEvent((955,15),"src/Fases/Botoes/btnSair.png", "src/Fases/Botoes/btnSair_move.png", "src/Fases/Botoes/btnSair_click.png",self.out)] #========Vassoura self.vas = Vassoura("Fase8") self.balance = Balance(True) self.ficha = Fichas("Fase8", self.vas) self.ficha.eixosLeft,self.ficha.eixosRight = self.balance.setRight(self.ficha.eixosLeft,self.ficha.eixosRight) self.base = ObjectEvent((self.vas.vas.rect.x + 43*(self.vas.vas.image.get_width()/53) ,self.vas.vas.image.get_height()/2+self.vas.vas.rect.y-15) ,"src/Fases/Vassoura/prego.png",None,None) pass def draw(self,tela): #Pintando o vetor da fase self.backGround.draw(tela) DrawVector(self.MainObjects,tela) #==========================VASSOURA=============================== self.vas.draw(tela) self.balance.draw(tela, self.ficha.eixosLeft, self.ficha.eixosRight) self.ficha.draw(tela) pass def event (self,event): self.ficha.event(event) if event.type == pygame.MOUSEMOTION: for q in self.MainObjects: q.update(pygame.mouse.get_pos()) if event.type == pygame.MOUSEBUTTONDOWN: for q in self.MainObjects: q.clickStart(pygame.mouse.get_pos()) if event.type == pygame.MOUSEBUTTONUP: for q in self.MainObjects: if q.clickEnd(pygame.mouse.get_pos()): return pass pass def update(self,dt): self.ficha.update(dt) self.vas.update(self.ficha.speed,self.ficha.resultWeigth,dt) pass
class Fase4(GameState): def out (self): self.updateState = True self.NextCurrentState = "Quit" def back (self): self.updateState = True self.NextCurrentState = self.StateTemp[2] self.effect =1 def next(self): self.updateState = True self.effect = 0 pass def help (self): print "Help" pass def base (self): pass def prego (self): pass def __init__(self): #Carregando o vetor da fase pelo construtor self.backGround = Object("src/Fases/Fase4/fundo.png") self.StateTemp = ["Fase4","Fase6","Fase3"] self.NextCurrentState = self.StateTemp[1] self.updateState = False self.effect = 0 self.base = [ObjectEvent((740,350),"src/Fases/Vassoura/base.png",None,None,self.base), ObjectEvent((700,300),"src/Fases/Vassoura/prego.png",None,None,self.prego)] self.MainObjects = [ObjectEvent((925,100), "src/Fases/Botoes/btnSetaDireita.png", "src/Fases/Botoes/btnSetaDireita_move.png", "src/Fases/Botoes/btnSetaDireita_click.png",self.next), ObjectEvent((15,100), "src/Fases/Botoes/btnSetaEsquerda.png", "src/Fases/Botoes/btnSetaEsquerda_move.png", "src/Fases/Botoes/btnSetaEsquerda_click.png",self.back), ObjectEvent((870,15),"src/Fases/Botoes/btnAjuda.png", "src/Fases/Botoes/btnAjuda_move.png", "src/Fases/Botoes/btnAjuda_click.png",self.help), ObjectEvent((955,15),"src/Fases/Botoes/btnSair.png", "src/Fases/Botoes/btnSair_move.png", "src/Fases/Botoes/btnSair_click.png",self.out)] #========Vassoura self.vas = Vassoura("Fase4") self.balance = Balance(False) self.ficha = Fichas("Fase4",self.vas,self.MainObjects) pass def draw(self,tela): #Pintando o vetor da fase self.backGround.draw(tela) self.base[0].draw(tela) self.vas.draw(tela) DrawVector(self.MainObjects,tela) self.base[1].draw(tela) self.ficha.draw(tela) self.balance.draw(tela, self.ficha.eixosLeft,self.ficha.eixosRight) pass def event (self,event): self.ficha.event(event) self.vas.event(event) if event.type == pygame.MOUSEMOTION: for q in self.MainObjects: q.update(pygame.mouse.get_pos()) if event.type == pygame.MOUSEBUTTONDOWN: for base in self.base: base.clickStart(pygame.mouse.get_pos()) for q in self.MainObjects: q.clickStart(pygame.mouse.get_pos()) if event.type == pygame.MOUSEBUTTONUP: for base in self.base: base.clickEnd(pygame.mouse.get_pos()) for q in self.MainObjects: if q.clickEnd(pygame.mouse.get_pos()): return pass pass def update(self,dt): self.ficha.update(dt,self.vas.vas) self.vas.update(self.ficha.speed,self.ficha.resultWeigth,dt) #Base da Vassoura if self.base[1].state == "Clicking" and not self.vas.vas.state == "Clicking ": x,y = pygame.mouse.get_pos() self.base[1].rect.x , self.base[1].rect.y = x - self.base[1].rect.width/2, y - self.base[1].rect.height/2 if self.base[0].state == "Clicking" and not self.vas.vas.state == "Clicking" and not self.base[1].state == "Clicking": x,y = pygame.mouse.get_pos() self.base[0].rect.x = x - self.base[0].rect.width/2 pass #Vassoura if self.vas.vas.state == "Clicking" and not self.base[1].state == "Clicking": x,y = pygame.mouse.get_pos() self.vas.vas.rect.x , self.vas.vas.rect.y = x - self.vas.vas.rect.width/2, y -self.vas.vas.rect.height/2 if self.vas.vas.state == "Idle": loop = True while loop: if self.vas.vas.rect.y <= 160: self.vas.vas.rect.y +=1 else: loop = False if self.vas.vas.rect.x < 0 : self.vas.vas.rect.x = 0 elif self.vas.vas.rect.x+self.vas.vas.image.get_width() > 1024: self.vas.vas.rect.x = 1024-self.vas.vas.image.get_width() # Balance if self.base[1].state == "Idle" and self.vas.vas.state == "Idle": if self.base[1].rect.colliderect(self.vas.vas.rect): if self.base[1].rect.x < self.vas.vas.rect.x+216: self.base[1].rect.x = self.vas.vas.rect.x + 9*(self.vas.vas.image.get_width()/53) #self.ficha.eixosLeft,self.ficha.eixosRight = self.balance.setLeft() pass if self.base[1].rect.x >= self.vas.vas.rect.x+216 and self.base[1].rect.x <= self.vas.vas.rect.x+578: self.base[1].rect.x = self.vas.vas.rect.x + self.vas.vas.image.get_width()/2-self.base[1].image.get_width()/2 #self.ficha.eixosLeft,self.ficha.eixosRight = self.balance.setCenter() pass if self.base[1].rect.x >self.vas.vas.rect.x+ 578: self.base[1].rect.x = self.vas.vas.rect.x + 43*(self.vas.vas.image.get_width()/53) #self.ficha.eixosLeft,self.ficha.eixosRight = self.balance.setRight() pass self.base[1].rect.y = self.vas.vas.image.get_height()/2+self.vas.vas.rect.y-self.base[1].image.get_height()/2 pass