예제 #1
0
def creat_left_ships(setting, screen, stats, left_ships):
    ship = Ship(setting, screen, 'ico_ship')
    ship_width = ship.rect.width
    for left_ship_number in range(stats.ship_left):
        left_ship = Ship(setting, screen, 'ico_ship')
        left_ship.rect.x = left_ship_number * ship_width
        left_ship.rect.y = 5
        left_ships.add(left_ship)
예제 #2
0
    def init_game(self):
        self.ship = Ship(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT // 2)

        self.level = StatusWithText(self, 100, 580, 'Level: %d', 1)
        self.level_wait = 0

        # StatusWithText encap
        self.score = StatusWithText(self, 100, 20, 'Score: %d', 0)
        self.score_wait = 0
        
        self.bomb_power = StatusWithText(self, 700, 20, 'Power: %d%%', BOMB_FULL_POWER)
        self.bomb_wait = 0

        self.elements.append(self.ship)

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

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

        # CoR pattern
        self.init_key_handlers()

        # canvas configure
        self.canvas.configure(bg="darkgray")
        for item in [self.level, self.score, self.bomb_power]:
            self.canvas.itemconfigure(item.label_text.canvas_object_id, fill="white")
예제 #3
0
def run_game():
    pygame.init()
    setting = Setting()
    screen = pygame.display.set_mode(
        (setting.screen_with, setting.screen_height))
    pygame.display.set_caption(setting.title)
    stats = GameStats(setting)
    stats.max_score = gf.get_record_score()
    gf.check_joystick(stats)

    play_button = Button(screen, 'Play Game')
    score_b = Scoreboard(setting, screen, stats)

    ship = Ship(setting, screen)
    bullets = Group()
    aliens = Group()
    left_ships = Group()
    gf.creat_left_ships(setting, screen, stats, left_ships)

    while True:
        gf.check_event(setting, screen, stats, play_button, ship, aliens,
                       bullets, score_b)
        if stats.game_active:
            ship.update_place(setting)
            gf.update_bullet(setting, stats, bullets, aliens, score_b)
            gf.update_aliens(setting, screen, stats, ship, aliens, bullets)
        gf.update_screen(setting, screen, stats, ship, aliens, bullets,
                         play_button, score_b, left_ships)
예제 #4
0
파일: main.py 프로젝트: wave49192/tk-space
    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()
예제 #5
0
파일: main.py 프로젝트: tboonma/space
    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.level = StatusWithText(self, 100, 580, 'Level: %d', 1)
        # self.update_level_text()

        self.score_wait = 0
        # self.score = 0
        # self.score_wait = 0
        # self.score_text = Text(self, '', 100, 20)
        # self.update_score_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.bomb_power = StatusWithText(self, 700, 20, 'Power: %d',
                                         BOMB_FULL_POWER)
        # self.update_bomb_power_text()

        self.elements.append(self.ship)

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

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

        self.init_key_handlers()
예제 #6
0
파일: main.py 프로젝트: touchtool/tk-space
    def init_game(self):
        self.ship = Ship(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT // 2)

        self.level = StatusWithText(self, 100, 580, 'Level: %d', 1)

        self.score_wait = 0
        # --- remove this
        # self.score = 0
        # self.score_text = Text(self, '', 100, 20)
        # self.update_score_text()
        # --- replace with:
        self.score = StatusWithText(self, 100, 20, 'Score: %d', 0)

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

        self.elements.append(self.ship)

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

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

        self.init_key_handlers()
예제 #7
0
    def init_game(self):
        self.ship = Ship(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT // 2)

        # Debugging: Avoid death
        # This is a bad practice. GameApp should not access argument.
        # TODO: Refactor this
        self.is_debugging = len(sys.argv) >= 2

        self.level = StatusWithText(self, 100, 580, 'Level: %d', 1)
        self.level_wait = 0

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

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

        self.elements.append(self.ship)

        self.init_key_handlers()

        self.enemies = []
        self.bullets = []
예제 #8
0
파일: main.py 프로젝트: vitvara/space
    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()
예제 #9
0
    def init_game(self):
        self.ship = Ship(self, CANVAS_WIDTH // 2, CANVAS_HEIGHT // 2)

        self.level = StatusWithText(self, 100, 580, 'Level: %d', 0)

        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%%', 0)

        self.elements.append(self.ship)

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

        self.init_key_handlers()

        self.enemies = []
        self.bullets = []
예제 #10
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 = []