コード例 #1
0
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
コード例 #2
0
ファイル: panel.py プロジェクト: giginet/FormationPuzzle
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)