Esempio n. 1
0
    def init_game(self):
        self.maze = Maze(self, CANVAS_WIDTH, CANVAS_HEIGHT)

        self.pacman1 = Pacman(self, self.maze, 1, 1)
        self.pacman2 = Pacman(self, self.maze,
                              self.maze.get_height() - 2,
                              self.maze.get_width() - 2)

        self.pacman1_score_text = Text(self, 'P1: 0', 100, 20)
        self.pacman2_score_text = Text(self, 'P2: 0', 600, 20)

        self.elements.append(self.pacman1)
        self.elements.append(self.pacman2)

        self.pacman1_score = 0
        self.pacman2_score = 0

        self.command_map = {
            'W': self.get_pacman_next_direction_function(self.pacman1, DIR_UP),
            'A':
            self.get_pacman_next_direction_function(self.pacman1, DIR_LEFT),
            'S':
            self.get_pacman_next_direction_function(self.pacman1, DIR_DOWN),
            'D':
            self.get_pacman_next_direction_function(self.pacman1, DIR_RIGHT),
            'J':
            self.get_pacman_next_direction_function(self.pacman2, DIR_LEFT),
            'I': self.get_pacman_next_direction_function(self.pacman2, DIR_UP),
            'K':
            self.get_pacman_next_direction_function(self.pacman2, DIR_DOWN),
            'L':
            self.get_pacman_next_direction_function(self.pacman2, DIR_RIGHT),
        }
Esempio n. 2
0
    def init_game(self):
        self.ship = Ship(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT // 2)

        self.level = 1
        self.level_text = Text(self, '', 100, 580)
        self.update_level_text()

        self.score = 0
        self.score_wait = 0
        self.score_text = Text(self, '', 100, 20)
        self.update_score_text()

        self.bomb_power = BOMB_FULL_POWER
        self.bomb_wait = 0
        self.bomb_power_text = Text(self, '', 700, 20)
        self.update_bomb_power_text()

        self.elements.append(self.ship)

        self.init_key_handlers()

        self.enemies = []
        self.bullets = []


        self.enemy_creation_strategies = [
            (0.2, StarEnemyGenerationStrategy()),
            (1.0, EdgeEnemyGenerationStrategy())
        ]
Esempio n. 3
0
    def init_game(self):
        self.ship = Ship(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT // 2)
        self.score_wait = 0
        self.level = 1
        self.level_text = Text(self, '', 100, 580)
        self.update_level_text()

        self.score = StatusWithText(self, 100, 20, 'Score: %d', 0)

        self.bomb_power = BOMB_FULL_POWER
        self.bomb_wait = 0
        self.bomb_power_text = Text(self, '', 700, 20)
        self.update_bomb_power_text()

        self.elements.append(self.ship)
        self.power_up = []
        self.enemies = []
        self.bullets = []

        self.enemy_creation_strategies = [
            StarEnemyGenerationStrategy(),
            EdgeEnemyGenerationStrategy(),
            GhostEnemyGenerationStrategy()
        ]
        self.init_key_handlers()
Esempio n. 4
0
    def init_game(self):
        self.maze = Maze(self, CANVAS_WIDTH, CANVAS_HEIGHT)

        self.pacman1 = Pacman(self, self.maze, 1, 1)
        self.pacman2 = Pacman(self, self.maze, self.maze.get_height() - 2, self.maze.get_width() - 2)

        self.pacman1_score_text = Text(self, 'P1: 0', 100, 20)
        self.pacman2_score_text = Text(self, 'P2: 0', 600, 20)

        self.elements.append(self.pacman1)
        self.elements.append(self.pacman2)

        # Adding attributes for Pacman scores
        self.pacman1_score = 0
        self.pacman2_score = 0

        # register self.dot_eaten_by_pacman1 to self.pacman1's observers
        self.pacman1.dot_eaten_observers.append(self.dot_eaten_by_pacman1)
        # register self.dot_eaten_by_pacman2 to self.pacman2's observers
        self.pacman2.dot_eaten_observers.append(self.dot_eaten_by_pacman2)

        self.command_map = {
            'W': self.get_pacman_next_direction_function(self.pacman1, DIR_UP),
            'A': self.get_pacman_next_direction_function(self.pacman1, DIR_LEFT),
            'S': self.get_pacman_next_direction_function(self.pacman1, DIR_DOWN),
            'D': self.get_pacman_next_direction_function(self.pacman1, DIR_RIGHT),
            'J': self.get_pacman_next_direction_function(self.pacman2, DIR_LEFT),
            'I': self.get_pacman_next_direction_function(self.pacman2, DIR_UP),
            'K': self.get_pacman_next_direction_function(self.pacman2, DIR_DOWN),
            'L': self.get_pacman_next_direction_function(self.pacman2, DIR_RIGHT)

        }
Esempio n. 5
0
 def create_sprites(self):
     self.dot = Dot(self, 'images/dot.png', CANVAS_WIDTH // 2,
                    CANVAS_HEIGHT // 2)
     self.elements.append(self.dot)
     self.pillar_pair = PillarPair(self, 'images/pillar-pair.png',
                                   CANVAS_WIDTH, CANVAS_HEIGHT // 2)
     self.elements.append(self.pillar_pair)
     self.is_defeated = False
     self.score_text = Text(self, 0, CANVAS_WIDTH / 2, 40)
     self.defeated_text = Text(self, "", CANVAS_WIDTH / 2, CANVAS_WIDTH / 2)
Esempio n. 6
0
    def init_game(self):
        self.maze = Maze(self, CANVAS_WIDTH, CANVAS_HEIGHT)

        self.pacman1 = Pacman(self, self.maze, 1, 1)
        self.pacman2 = Pacman(self, self.maze,
                              self.maze.get_height() - 2,
                              self.maze.get_width() - 2)

        self.pacman1_score_text = Text(self, 'P1: 0', 100, 20)
        self.pacman2_score_text = Text(self, 'P2: 0', 600, 20)

        self.elements.append(self.pacman1)
        self.elements.append(self.pacman2)
Esempio n. 7
0
    def init_game(self):
        self.background = Sprite(
            self, "images/background.png", CANVAS_WIDTH//2, CANVAS_HEIGHT//2)
        self.ship = Ship(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT // 2)

        self.level = StatusWithText(
            self, 100, CANVAS_WIDTH-CANVAS_WIDTH*0.3, 'level: %d', 1)

        self.score_wait = 0
        self.score = StatusWithText(self, 100, 20, 'Score: %d', 0)
        self.enemy_creation_strategies = [
            [0.09, TieFighterEnemyGeration()],
            [0.03, StarEnemyGenerationStrategy()],
            [0.8, EdgeEnemyGenerationStrategy()]
        ]
        self.bomb_power = StatusWithText(
            self, CANVAS_WIDTH-100, 20, 'power: %d', BOMB_FULL_POWER)
        self.bomb_wait = 0
        self.bomb_power_text = Text(self, '', 700, 20)
        self.health = StatusWithText(
            self, 700, CANVAS_WIDTH-CANVAS_WIDTH*0.3, 'health: %d', 4)
        self.elements.append(self.ship)
        self.boss = None
        self.turbo_power()
        self.enemies = []
        self.bullets = []
        self.init_key_handlers()
Esempio n. 8
0
 def __init__(self, app, x, y, text_template, default_value=0):
     self.x = x
     self.y = y
     self.text_template = text_template
     self._value = default_value
     self.label_text = Text(app, '', x, y)
     self.update_label()
Esempio n. 9
0
    def init_game(self):
        self.basket = Basket(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT - 50)
        self.elements.append(self.basket)

        self.score = 0
        self.score_text = Text(self, 'Score: 0', 100, 40)
        self.fruits = []
Esempio n. 10
0
    def init_game(self):
        self.cat = Cat(self, 50, CANVAS_HEIGHT // 2)
        self.elements.append(self.cat)

        self.score = 0
        self.score_text = Text(self, 'Score: 0', 100, 40)
        self.fruits = []
Esempio n. 11
0
    def init_game(self):
        self.basket = Basket(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT - 50)
        self.elements.append(self.basket)

        self.score = 0
        self.score_text = Text(self, 'Score: 0', 100, 40)
        self.fruits = []
        self.basket.fruit_collect_observers.append(lambda: self.fruit_collect_basket())
Esempio n. 12
0
 def post_update(self):
     # Check for lose condition
     # 1. The dot falls of the screen.
     # 2. The dot hits the pillar
     if (self.dot.is_out_of_screen() or self.dot.is_hit()) and not self.is_gameover:
         self.is_gameover = True
         self.pillar_pair.game_over()
         self.dot.game_over()
         Text(app, "Game Over!!!", 400, 250)
         print("Game over")
Esempio n. 13
0
 def create_message_box(self):
     """A message box that shows which player is to take a turn,
     and other status messages.
     """
     self.message_box = Text(self.canvas,
             " "*16, 
             20, 40,  # show text in upper left corner of canvas
             fill="white",
             justify=tk.LEFT,
             anchor=tk.W,
             font=font.Font(family="Monospace",size=18)
             )
Esempio n. 14
0
    def init_game(self):
        self.ship = Ship(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT // 2)

        self.level = 1
        self.level_text = Text(self, '', 100, 580)
        self.update_level_text()

        self.score = 0
        self.score_wait = 0
        self.score_text = Text(self, '', 100, 20)
        self.update_score_text()

        self.bomb_power = BOMB_FULL_POWER
        self.bomb_wait = 0
        self.bomb_power_text = Text(self, '', 700, 20)
        self.update_bomb_power_text()

        self.elements.append(self.ship)

        self.enemies = []
        self.bullets = []
    def init_game(self):
        self.basket = Basket(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT - 50)
        self.elements.append(self.basket)

        self.score = 0
        self.score_text = Text(self, 'Score: 0', 100, 40)
        self.fruits = []

        self.command_map = {
            'Left': self.next_direction_function(self.basket, BASKET_LEFT),
            'Right': self.next_direction_function(self.basket, BASKET_RIGHT),
        }
Esempio n. 16
0
    def init_game(self):
        self.cat = Cat(self, 50, CANVAS_HEIGHT // 2)
        self.cat.observer_subscribe(self.fruit_collected_observer)
        self.elements.append(self.cat)

        self.key_bindings = {
            'Up': self.set_cat_dir(CAT_UP),
            'Down': self.set_cat_dir(CAT_DOWN)
        }

        self.score = 0
        self.score_text = Text(self, 'Score: 0', 100, 40)
        self.fruits = []
Esempio n. 17
0
    def create_sprites(self):
        self.banana = Banana(self, 'banana.png', 100, 400)
        self.banana.set_speed(15, 25)

        self.monkey = Sprite(self, 'monkey.png', 100, 400)
        self.enemy = Sprite(self, 'monkey.png', 700, 400)

        self.elements.append(self.banana)
        self.elements.append(self.monkey)
        self.elements.append(self.enemy)

        self.speed_text = Text(self, 'Speed: XX', 40, 20)

        self.elements.append(self.speed_text)
Esempio n. 18
0
    def init_game(self):
        self.basket = Basket(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT - 50)
        self.elements.append(self.basket)

        self.score = 0
        self.score_text = Text(self, 'Score: 0', 100, 40)
        self.fruits = []

        self.command_map = {
            'Left':
            self.get_pacman_next_direction_function(self.basket, BASKET_LEFT),
            'Right':
            self.get_pacman_next_direction_function(
                self.basket,
                BASKET_RIGHT),  # second improvement Implementing the pattern
        }
Esempio n. 19
0
 def __init__(self,
              app,
              x,
              y,
              text_template,
              default_value=0,
              default_level=1,
              default_bomb_power=10):
     self.x = x
     self.y = y
     self.text_template = text_template
     self.default_value = default_value
     self.label_text = Text(app, '', x, y)
     self.default_level = default_level
     self.default_bomb_power = default_bomb_power
     self.update_label()
Esempio n. 20
0
    def create_sprites(self):

        self.image_filename = 'images/bgggg.png'
        self.photo_image = tk.PhotoImage(file=self.image_filename)
        self.canvas_object_id = self.canvas.create_image(250, 200, image=self.photo_image)

        self.image_filename = 'images/bgggg.png'
        self.photo_image = tk.PhotoImage(file=self.image_filename)
        self.canvas_object_id = self.canvas.create_image(250, 100, image=self.photo_image)

        self.dot = Dot(self, 'images/dot.png',CANVAS_WIDTH // 2, CANVAS_HEIGHT // 2)
        self.elements.append(self.dot)
        self.pillar_pair = PillarPair(self, 'images/pillar-pair.png', CANVAS_WIDTH, CANVAS_HEIGHT // 2)
        self.elements.append(self.pillar_pair)
        self.dot.score.append(self.scoring)

        self.new_game = False
        self.counting_score = Text(self,'P1:0',100,20)
        self.counting_score = 0
Esempio n. 21
0
    def init_game(self):
        self.ship = Ship(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT // 2)

        self.level = 1
        self.level_text = Text(self, '', 100, 580)
        self.update_level_text()

        self.score_wait = 0
        self.score = StatusWithText(self, 100, 20, 'Score: %d', 0)

        self.bomb_wait = 0
        self.bomb_power = StatusWithText(self, 700, 20, 'Power: %d%%', 100)

        self.enemy_creation_strategies = [(0.2, StarEnemyGenerationStrategy()),
                                          (1.0, EdgeEnemyGenerationStrategy())]

        self.elements.append(self.ship)

        self.enemies = []
        self.bullets = []

        self.init_key_handlers()
Esempio n. 22
0
 def init_game(self):
     self.is_started = False
     self.is_gameover = False
     self.create_sprites()
     self.score = Text(self, 0, 50, 50)
Esempio n. 23
0
    def init_game(self):
        self.game_started = False
        self.superdot_started = False
        self.maze = Maze(self, CANVAS_WIDTH, CANVAS_HEIGHT)

        self.pacman1_image = tk.PhotoImage(file='images/pacman1.png')
        self.pacman2_image = tk.PhotoImage(file='images/pacman2.png')

        self.ghost1_image = tk.PhotoImage(file='images/ghost1.png')
        self.ghost2_image = tk.PhotoImage(file='images/ghost2.png')
        self.ghost3_image = tk.PhotoImage(file='images/ghost3.png')
        self.ghost4_image = tk.PhotoImage(file='images/ghost4.png')

        self.pacman1 = Pacman(self, self.maze, 1, 1, self.pacman1_image)
        self.pacman2 = Pacman(self, self.maze,
                              self.maze.get_height() - 2,
                              self.maze.get_width() - 2, self.pacman2_image)

        self.ghost1 = Ghost(self, self.maze, (self.maze.get_height() - 2) // 2,
                            (self.maze.get_width() - 2) // 2,
                            self.ghost1_image)
        self.ghost2 = Ghost(self, self.maze, (self.maze.get_height() - 2) // 2,
                            self.maze.get_width() - 10, self.ghost2_image)
        self.ghost3 = Ghost(self, self.maze,
                            (self.maze.get_height() - 2) // 2 + 1,
                            (self.maze.get_width() - 2) // 2,
                            self.ghost3_image)
        self.ghost4 = Ghost(self, self.maze,
                            (self.maze.get_height() - 2) // 2 + 1,
                            self.maze.get_width() - 10, self.ghost4_image)

        self.pacman1_score_text = Text(self, 'P1: 0', 100, 20)
        self.pacman2_score_text = Text(self, 'P2: 0', 600, 20)

        self.elements.append(self.pacman1)
        self.elements.append(self.pacman2)

        self.elements.append(self.ghost1)
        self.elements.append(self.ghost2)
        self.elements.append(self.ghost3)
        self.elements.append(self.ghost4)

        self.pacman1_score = 0
        self.pacman2_score = 0

        self.pacman1.dot_eaten_observers.append(self.dot_eaten_by_pacman1)
        self.pacman2.dot_eaten_observers.append(self.dot_eaten_by_pacman2)

        self.command_map = {
            'W': self.get_pacman_next_direction_function(self.pacman1, DIR_UP),
            'A':
            self.get_pacman_next_direction_function(self.pacman1, DIR_LEFT),
            'S':
            self.get_pacman_next_direction_function(self.pacman1, DIR_DOWN),
            'D':
            self.get_pacman_next_direction_function(self.pacman1, DIR_RIGHT),
            'I': self.get_pacman_next_direction_function(self.pacman2, DIR_UP),
            'J':
            self.get_pacman_next_direction_function(self.pacman2, DIR_LEFT),
            'K':
            self.get_pacman_next_direction_function(self.pacman2, DIR_DOWN),
            'L':
            self.get_pacman_next_direction_function(self.pacman2, DIR_RIGHT),
        }