コード例 #1
0
    def __init__(self, party, enemies):
        GameState.__init__(self)

        self.bkg = gfx.load("misc/overpass.png")
        self.bkg = pygame.transform.scale(self.bkg, (sd.get_size()))

        self.actors = []
        self.glitter = []

        hero = lib2d.sheetloader.load_actor("hero", Hero)
        hero.avatar.play("walk")
        hero.face("north")
        self.actors.append(hero)

        m0 = Monster()
        m0.render()

        m0.rect.topleft = (170, 10)  # hack

        party = [hero]
        enemies = [m0]

        self.timer = VisualTimer(0, (10, 30, 100, 16))
        self.player_area = Rect(160, 140, 160, 78)
        self.party = [party, enemies]
        self.member_focus = 0

        self.stale_spells = []

        # kinda a hack until [if] i properly implement a scheduler for
        # concurrent states
        self.states = []
        self.substate = None
コード例 #2
0
ファイル: battlestate.py プロジェクト: MacLeek/mh
    def __init__(self, party, enemies):
        GameState.__init__(self)

        self.bkg = gfx.load("misc/overpass.png")
        self.bkg = pygame.transform.scale(self.bkg, (sd.get_size()))

        self.actors = []
        self.glitter = []

        hero = lib2d.sheetloader.load_actor("hero", Hero)
        hero.avatar.play("walk")
        hero.face("north")
        self.actors.append(hero)

        m0 = Monster()
        m0.render()

        m0.rect.topleft = (170, 10)   # hack

        party = [hero]
        enemies = [m0]

        self.timer = VisualTimer(0, (10,30,100,16))
        self.player_area = Rect(160, 140, 160, 78)
        self.party = [party, enemies]
        self.member_focus = 0

        self.stale_spells = []

        # kinda a hack until [if] i properly implement a scheduler for
        # concurrent states
        self.states = []
        self.substate = None
コード例 #3
0
ファイル: battlestate.py プロジェクト: MacLeek/mh
class BattleState(GameState):
    """
    This state is used to handle combat between the player and a CPU
    monster.

    The real work is handled by SelectState and StackState.
    """

    def __init__(self, party, enemies):
        GameState.__init__(self)

        self.bkg = gfx.load("misc/overpass.png")
        self.bkg = pygame.transform.scale(self.bkg, (sd.get_size()))

        self.actors = []
        self.glitter = []

        hero = lib2d.sheetloader.load_actor("hero", Hero)
        hero.avatar.play("walk")
        hero.face("north")
        self.actors.append(hero)

        m0 = Monster()
        m0.render()

        m0.rect.topleft = (170, 10)   # hack

        party = [hero]
        enemies = [m0]

        self.timer = VisualTimer(0, (10,30,100,16))
        self.player_area = Rect(160, 140, 160, 78)
        self.party = [party, enemies]
        self.member_focus = 0

        self.stale_spells = []

        # kinda a hack until [if] i properly implement a scheduler for
        # concurrent states
        self.states = []
        self.substate = None


    def win(self):
        """
        Called when the player wins
        """

        sd.replace(WinningState())


    def start(self, state):
        """
        hack!
        """

        self.states.append(state)
        self.substate = self.states[-1]
        self.substate.activate()   
 
    
    def done(self):
        """
        hack!
        """

        self.substate.deactivate()
        self.states.pop()
        self.substate = self.states[-1]
        self.substate.activate()


    def draw(self, surface):
        surface.fill((0,0,0))
        self.substate.draw(surface)
        self.timer.draw(surface)
        surface.blit(self.party[1][0].image, (170,10)) # draw the monster
        [ g.draw(surface) for g in self.glitter ]
        surface.fill((32,32,32), self.player_area)


    def handle_event(self, event):
        self.substate.handle_event(event)


    def activate(self):
        self.start(SelectState(self))


    def update(self, time):
        """
        if another state such as select state is here, make sure they are
        calling this update
        """

        [ i.update(time) for i in self.glitter ]
        [ a.avatar.update(time) for a in self.actors ]
        self.timer.update(time)
        self.glitter = [ i for i in self.glitter if i.alive ]
        self.substate.update(time)
コード例 #4
0
class BattleState(GameState):
    """
    This state is used to handle combat between the player and a CPU
    monster.

    The real work is handled by SelectState and StackState.
    """
    def __init__(self, party, enemies):
        GameState.__init__(self)

        self.bkg = gfx.load("misc/overpass.png")
        self.bkg = pygame.transform.scale(self.bkg, (sd.get_size()))

        self.actors = []
        self.glitter = []

        hero = lib2d.sheetloader.load_actor("hero", Hero)
        hero.avatar.play("walk")
        hero.face("north")
        self.actors.append(hero)

        m0 = Monster()
        m0.render()

        m0.rect.topleft = (170, 10)  # hack

        party = [hero]
        enemies = [m0]

        self.timer = VisualTimer(0, (10, 30, 100, 16))
        self.player_area = Rect(160, 140, 160, 78)
        self.party = [party, enemies]
        self.member_focus = 0

        self.stale_spells = []

        # kinda a hack until [if] i properly implement a scheduler for
        # concurrent states
        self.states = []
        self.substate = None

    def win(self):
        """
        Called when the player wins
        """

        sd.replace(WinningState())

    def start(self, state):
        """
        hack!
        """

        self.states.append(state)
        self.substate = self.states[-1]
        self.substate.activate()

    def done(self):
        """
        hack!
        """

        self.substate.deactivate()
        self.states.pop()
        self.substate = self.states[-1]
        self.substate.activate()

    def draw(self, surface):
        surface.fill((0, 0, 0))
        self.substate.draw(surface)
        self.timer.draw(surface)
        surface.blit(self.party[1][0].image, (170, 10))  # draw the monster
        [g.draw(surface) for g in self.glitter]
        surface.fill((32, 32, 32), self.player_area)

    def handle_event(self, event):
        self.substate.handle_event(event)

    def activate(self):
        self.start(SelectState(self))

    def update(self, time):
        """
        if another state such as select state is here, make sure they are
        calling this update
        """

        [i.update(time) for i in self.glitter]
        [a.avatar.update(time) for a in self.actors]
        self.timer.update(time)
        self.glitter = [i for i in self.glitter if i.alive]
        self.substate.update(time)