Ejemplo n.º 1
0
class GameWindow(pyglet.window.Window):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.set_location(400, 100)
        self.frame_rate = 1/60.0
        self.player = GameObject( posx = 200, posy = 200 ,image = "Mario_Super.png")
        self.enemie1 = Enemies(posx=500, posy=200, image="goomba_1.png")
        self.enemie2 = Enemies(posx=300, posy=200, image="goomba_1.png")
        self.background = BackgroundObject(posx = 0, posy = 0, image ='background_0.jpg')
        self.brick = BackgroundObject(posx=0, posy=0, image='brick.png')


    def on_key_press(self, symbol, modifiers):
        if symbol == key.RIGHT:
            self.player.velx = 150
            self.background.velx = -150
        if symbol == key.LEFT:
            self.player.velx = -150
            self.background.velx = 150
        if symbol == key.UP:
            self.player.vely = 150
        if symbol == key.DOWN:
            self.player.vely = -150
        if symbol == key.A:
            self.player.imageList = self.player.image_list_attack
        if symbol == key.W:
            self.player.imageList = self.player.image_list_walk
            self.background.velx = -150
        if symbol == key.S:
            self.player.imageList = self.player.image_list_swim
        if symbol == key.D:
            self.player.imageList = self.player.image_list_dash
        if symbol == key.J:
            self.player.imageList = self.player.image_list_jump
        if symbol == key.C:
            self.player.imageList = self.player.image_list_climb

    def on_key_release(self, symbol, modifiers):
        if symbol in (key.RIGHT, key.LEFT):
            self.player.velx = 0
            self.background.velx = 0
        if symbol in (key.UP, key.DOWN, key.C):
            self.player.vely =0
        if symbol in (key.A, key.W, key.S, key.D, key.J, key.C):
            self.player.imageList = self.player.image_list_default
            self.background.velx = 0

    def on_draw(self):
        self.clear()
        self.background.draw()
        self.brick.draw()
        self.player.draw()
        self.enemie1.draw()
        self.enemie2.draw()

    def update(self, dt):
        self.player.update(dt)
        self.background.update()
Ejemplo n.º 2
0
def main():
    #SCREEN_SIZEの画面を作成
    screen = pygame.display.set_mode(global_data.SCREEN_SIZE)
    #タイトルバーの文字列をセット
    pygame.display.set_caption(u"シューティングゲーム")
    #FPSの取得
    clock = pygame.time.Clock()

    myship = MyShip(50,50)

    enemies = Enemies()
    
    while True:
        #FPSを60に設定
        clock.tick(60)

        #背景色の設定
        screen.fill((255,255,255))

        # ***いろんな処理*** #
        myship.move()
        enemies.move()

        enemies.reloadEnemy()

        myship.draw(pygame,screen)
        enemies.draw(pygame,screen)

        #画面の更新
        pygame.display.update()
        for event in pygame.event.get():
            if event.type == QUIT: pygame.quit(); sys.exit()
            elif event.type == KEYDOWN:
                if event.key == K_RIGHT: myship.direction["right"] = True
                elif event.key == K_LEFT: myship.direction["left"] = True
                if event.key == K_UP: myship.direction["up"] = True
                elif event.key == K_DOWN: myship.direction["down"] = True
            elif event.type == KEYUP:
                if event.key == K_RIGHT: myship.direction["right"] = False
                elif event.key == K_LEFT: myship.direction["left"] = False
                if event.key == K_UP: myship.direction["up"] = False
                elif event.key == K_DOWN: myship.direction["down"] = False
Ejemplo n.º 3
0
class Game:
    def __init__(self):
        self.map = Map()
        self.towers = Towers(self.map)
        self.enemies = Enemies(self.map, self.towers)
        self.menu = Menu(self.map, self.towers, self.enemies, screen_width,
                         screen_height)

        self.dragging_tower = False
        self.round = 1
        self.start_round()

    def start_round(self, round=0):
        difficulty = round + 3
        self.enemies.new_round(difficulty=difficulty)

    def round_traker(self):
        if all([
                enemy.deprecated == True or enemy.in_the_end == True
                for enemy in self.enemies.enemies
        ]):
            self.round += 1
            self.start_round(round=self.round)

    def on_mouse_motion(self, x, y, dx, dy):
        self.map.on_mouse_motion(x, y, dx, dy)

    def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers):
        self.menu.on_mouse_drag(x, y, dx, dy, buttons, modifiers)

    def update(self, dt):
        self.round_traker()
        self.towers.update(dt, self.enemies)
        self.enemies.update(dt, self.towers)

    def user_text_draw(self):
        self.enemies_left = pyglet.text.Label(
            f'{len([enemy for enemy in self.enemies.enemies if not enemy.deprecated or enemy.in_the_end])} over {len(self.enemies.enemies)} enemies left',
            font_name='Helvetica',
            font_size=12,
            x=window.width - 200,
            y=window.height - 100,
            anchor_x='center',
            anchor_y='center')
        self.enemies_left.draw()

        self.round_nb = pyglet.text.Label(f'round {self.round}',
                                          font_name='Helvetica',
                                          font_size=12,
                                          x=window.width - 200,
                                          y=window.height - 120,
                                          anchor_x='center',
                                          anchor_y='center')
        self.round_nb.draw()

    def draw(self):
        window.clear()
        self.map.draw()
        self.towers.draw()
        self.enemies.draw()
        self.menu.draw()
        self.user_text_draw()

    def on_mouse_press(self, x, y, button, modifiers):
        self.menu.on_mouse_press(x, y)

    def on_mouse_release(self, x, y, button, modifiers):
        self.menu.on_mouse_release(x, y)