Exemplo n.º 1
0
def main():
    Log.Main("Gritty App").State("Init").call()
    pygame.init()
    pygame.display.set_caption("GRITTY")
    screen = pygame.display.set_mode((800, 600))
    clock = pygame.time.Clock()
    ghandler = GameHandler(screen, clock)
    gscene = GameScene(screen)
    glog = GTextBox("Log Activity", 32, 320 + 64, 320, 192, logger=True)
    glog.messages = "Log Activity"
    gscene.add_gobject(glog)
    ghandler.add_scene(gscene)
    ghandler.hscene.active(gscene)
    while True:
        clock.tick(30)
        # for event in pygame.event.get():
        #     if event.type == pygame.QUIT:
        #         pygame.quit()
        #         sys.exit(0)
        ghandler.event_handler()

        # -> update objects
        ghandler.update()
        # <-

        # -> render objects
        screen.fill(Color.WHITE)
        ghandler.render()
        # pygame.display.flip()
        # <-
    Log.Main("Gritty App").State("End").call()
Exemplo n.º 2
0
 def action_attack(self, source=None, target=None):
     Log.Scene(self.name).Source(source.name).Attack(target.name).call()
     event = GEvent.new_event(GEvent.APP_DEFINED,
                              self.event_battle_attack,
                              self,
                              GEvent.SCENE,
                              {"source": self.battle_source, "target": self.battle_target}, )
     return event
Exemplo n.º 3
0
 def attack(self, other):
     """attack implements the battle attack against the given actor.
     """
     damage = self.pstr = other.pdef
     other.life -= damage
     if other.life < 0:
         other.life = 0
     Log.GameActor(self.name).Attach(other.name).Damage(damage).call()
     return damage
Exemplo n.º 4
0
def main():
    Log.Main("Tiled App").State("Init").call()
    pygame.init()
    pygame.display.set_caption("Tiled App")
    screen = pygame.display.set_mode((WIDTH, HEIGHT))
    clock = pygame.time.Clock()
    ghandler = GameHandler(screen, clock)
    gscene = GameScene(screen)
    ghandler.add_scene(gscene)
    ghandler.hscene.active(gscene)
    while True:
        clock.tick(FPS)
        ghandler.event_handler()

        # -> update objects
        ghandler.update()
        # <-

        # -> render objects
        screen.fill(Color.WHITE)
        ghandler.render()
        # pygame.display.flip()
        # <-
    Log.Main("Tiled App").State("End").call()
Exemplo n.º 5
0
 def move_player_to(self, direction):
     """move_player_to moves the player to the given direction.
     """
     if self.catch_keyboard_gobject and self.player_turn:
         if direction == GameBoard.LEFT:
             ok, collision = self.move_it_gobject(self.catch_keyboard_gobject, -self.g_cell_size.x, 0)
         elif direction == GameBoard.RIGHT:
             ok, collision = self.move_it_gobject(self.catch_keyboard_gobject, self.g_cell_size.x, 0)
         elif direction == GameBoard.UP:
             ok, collision = self.move_it_gobject(self.catch_keyboard_gobject, 0, -self.g_cell_size.y)
         elif direction == GameBoard.DOWN:
             ok, collision = self.move_it_gobject(self.catch_keyboard_gobject, 0, self.g_cell_size.y)
         else:
             return False, None
         if ok:
             self.player_turn = False
             Log.Board(self.name).EndPlayerTurn().call()
         return ok, collision
     return True, None
Exemplo n.º 6
0
 def update(self, surface, **kwargs):
     """update provides any functionality to be done every tick.
     """
     if not self.player_turn:
         self.off_player_counter += 1
         if self.off_player_counter >= 2:
             self.off_player_counter = 0
             self.player_turn = True
             Log.Board(self.name).StartPlayerTurn().call()
     super(GameBoard, self).update(surface, **kwargs)
     event_bucket = kwargs["event-bucket"]
     bucket = []
     while len(event_bucket):
         event = event_bucket.pop(0)
         # Log.Scene(self.name).EventUpdateBucket(event).call()
         if event.type == GEvent.ENGINE and event.subtype == GEvent.DELETE and event.destination == GEvent.BOARD:
             self.del_gobject(event.source)
             event.destination = GEvent.SCENE
             bucket.append(event)
     event_bucket.extend(bucket)
Exemplo n.º 7
0
 def update(self, surface, **kwargs):
     """update updates object.
     """
     super(GTimed, self).update(surface, **kwargs)
     if self.timed_counter == 0 or self.timed_counter > self.timed_tick_counter:
         if self.timed_tick == sys.maxsize:
             self.timed_tick = 0
         if self.timed_tick_counter == sys.maxsize:
             self.timed_tick_counter = 0
         self.timed_tick += 1
         if self.timed_tick % self.timed_threshold == 0:
             self.timed_tick_counter += 1
             Log.Update(self.name).Counter(self.timed_tick).call()
             GEvent.post_event(
                 self.timed_event_type,
                 self.timed_event_subtype,
                 self,
                 self.timed_event_destination,
                 {
                     "callback": self.timed_callback(self.dx, self.dy),
                     "validation": lambda: (self.dx, self.dy)
                 })
Exemplo n.º 8
0
 def action_pass(self, source=None, target=None):
     Log.Scene(self.name).Source(source.name).Pass(target.name).call()
     return None
Exemplo n.º 9
0
 def action_defend(self, source=None, target=None):
     Log.Scene(self.name).Source(source.name).Defend(target.name).call()
     return None