class ResultSequence(Sequence): def ready(self): self.win = Animation(u"../resources/image/main/text/win.png", AnimationInfo(-1, 0, 1, 360, 225, 1)) finish_sound = Sound("../resources/sound/finish.wav") finish_sound.play() self.win.animation_enable = False self.win.x = settings.SCREENWIDTH/2-180 self.win.y = settings.SCREENHEIGHT/2-180 self.text.ainfo.index = 3 self.winner = self.scene.world.get_winner() self.result_timer = Timer(settings.FPS*2.5) self.result_timer.play() def update(self): self.result_timer.tick() if self.result_timer.is_active() and self.result_timer.is_over(): self.text.ainfo.index = -1 self.scene.bgm.change(u"../resources/music/fanfare_intro.wav", -1, u"../resources/music/fanfare_loop.wav", 100) self.win.ainfo.index = self.winner.number self.result_timer.stop() for player in self.scene.world.players: p = player.poll() u"""p=3のとき、リプレイ""" if not self.result_timer.is_active() and p == 3: self.scene.bgm.change(u"../resources/music/main_intro.wav", -1, u"../resources/music/main_loop.wav") self.scene.sequence_manager.change_scene('ready') #ToDo Retry or Title def draw(self): rect = self.scene.world.draw() map(lambda n: n.draw(), self.scene.navigations) self.scene.timer.draw() self.text.draw() self.win.draw() return rect
class Panel(Image): disable = False rotation = False unit = False def __init__(self, x=0, y=0, owner=0): u""" x,y: マップ上の相対座標 """ self.point = LocalPoint(x,y) self.color = random.randint(0,3) self.owner = owner self.disable_timer = Timer(120) self.redraw = True super(Panel,self).__init__("../resources/image/main/panel/panel%d_%d.png" % (owner, self.color), x=x*settings.PANELSIZE+settings.STAGE_OFFSET[0], y=y*settings.PANELSIZE+settings.STAGE_OFFSET[1]) def __eq__(self, p): return self.point == p.point def update(self): if self.disable: self.disable_timer.tick() if self.disable_timer.is_over(): self.set_disable(False) self.x = self.point.x*settings.PANELSIZE+settings.STAGE_OFFSET[0] self.y = self.point.y*settings.PANELSIZE+settings.STAGE_OFFSET[1] return False def get_point(self): return self.point def can_unit(self): return not self.rotation and not self.disable and not self.unit def can_rotate(self): return not self.rotation def can_through(self): return not self.unit and not self.rotation def is_dummy(self): return False def change_owner(self, owner): if not self.owner == owner: self.owner = owner self.change_image("../resources/image/main/panel/panel%d_%d.png" % (owner, self.color)) def change_color(self): color = random.randint(0,3) if not self.color == color: self.color = color if not self.disable: self.change_image("../resources/image/main/panel/panel%d_%d.png" % (self.owner, self.color)) def set_disable(self, disable): if not self.disable == disable: self.disable = disable if disable: self.disable_timer.play() if settings.EFFECTENABLE: Effect(u'../resources/effect/disable.png', AnimationInfo(0,0,60,64,64,1), x=self.x-22, y=self.y-22) self.change_image(u"../resources/image/main/panel/disable.png") else: self.disable_timer.stop() self.change_image(u"../resources/image/main/panel/panel%d_%d.png" % (self.owner, self.color)) def rotate(self): if self.disable: self.disable_timer.move(5)