Esempio n. 1
0
    def __init__(self, *args, **kwargs):
        super(Window, self).__init__(*args, **kwargs)

        self.score = 0
        self.difficulty = self.score + 50
        self.lives = 3
        self.time = 0.5
        self.ships = pyglet.graphics.Batch()
        self.rocks = pyglet.graphics.Batch()
        self.missiles = pyglet.graphics.Batch()
        self.started = False
        self.rock_trigger = 0

        # Images
        self.background = pyglet.image.load('static/images/nebula_blue.s2014.png')

        self.rock_img = pyglet.image.load('static/images/asteroid_blue.png')
        utils.center_image_anchor(self.rock_img)

        ship_sequence = pyglet.image.load('static/images/double_ship.png')
        self.ship_imgs = pyglet.image.ImageGrid(ship_sequence, 1, 2)
        utils.center_image_grid_anchors(self.ship_imgs)
        self.splash_img = pyglet.image.load('static/images/splash.png') 

        # Sounds
        self.thruster_snd = pyglet.media.load('static/sounds/rocket.ogg', streaming=False)
        self.explosion_snd = pyglet.media.load('static/sounds/explosion.ogg', streaming=False)
        self.background_music = pyglet.media.load('static/sounds/space1.mp3', streaming=False)
        self.background_music.play()

        # Sprite Groups
        self.rock_group = set()
        self.missile_group = set()

        # Spites 
        self.ship = PlayerSprite(self.ship_imgs, self.thruster_snd, 400, 250, 0, 0, 270, 35, self.ships, self.missiles)
        self.splash = Sprite(self.splash_img, 200, 125)

        # Screen Text
        self.text_lives = pyglet.text.Label('Lives=' + str(self.lives),
                                            font_name='Times New Roman',
                                            font_size=36, x=10, y=10)
        self.text_score = pyglet.text.Label('Score=' + str(self.score),
                                            font_name='Times New Roman',
                                            font_size=36, x=10, y=60)

        # Keymaps
        self.key_downs = {key.UP:self.accel, key.LEFT:self.left, key.RIGHT:self.right, key.SPACE:self.fire, key.ESCAPE:pyglet.app.exit}
        self.key_ups = {key.UP:self.decel, key.LEFT:self.right, key.RIGHT:self.left}

        pyglet.clock.schedule_interval(self.update, 1/60.0)  # update at 60Hz
Esempio n. 2
0
    def __init__(self, name, game):
        self.name = name
        self.pos = [50, 50]
        self.do_blit = False
        self.game = game
        self.surf = game.SCREEN

        self.lastMove = 99999999999

        self.velo_def = [0, 0]
        self.velo_x = 0
        self.velo_y = 0

        self.sprite = PlayerSprite(self)

        self.moving = [False, False, False, False]
Esempio n. 3
0
    def __init__(self, name, game):
        self.name = name
        self.pos = [50, 50]
        self.do_blit = False
        self.game = game
        self.surf = game.SCREEN

        self.lastMove = 99999999999

        self.velo_def = [0, 0]
        self.velo_x = 0
        self.velo_y = 0

        self.sprite = PlayerSprite(self)

        self.moving = [False, False, False, False]
Esempio n. 4
0
class Player(object):
    def __init__(self, name, game):
        self.name = name
        self.pos = [50, 50]
        self.do_blit = False
        self.game = game
        self.surf = game.SCREEN

        self.lastMove = 99999999999

        self.velo_def = [0, 0]
        self.velo_x = 0
        self.velo_y = 0

        self.sprite = PlayerSprite(self)

        self.moving = [False, False, False, False]

    def tick(self):
        if self.do_blit:
            self.game.reDraw = True
            self.sprite.display(self.surf.screen)
            #self.surface.screen.blit(self.image, self.pos)
            self.do_blit = False

    # print self.lastMove - time.time()
        if True in self.moving and abs(self.lastMove - time.time()) >= .08:
            self.lastMove = time.time()
            if self.moving[0]: self.move(x=-1)
            if self.moving[1]: self.move(x=1)  #down
            if self.moving[2]: self.move(y=-1)  #left
            if self.moving[3]: self.move(y=1)  #right

    def move(self, x=0, y=0):
        self.pos[1] += x * 10
        self.pos[0] += y * 10
        self.do_blit = True
        if y < 0 and self.sprite.dir == 1:
            self.sprite.flip()
        elif y > 0 and self.sprite.dir == -1:
            self.sprite.flip()
Esempio n. 5
0
class Player(object):
    def __init__(self, name, game):
        self.name = name
        self.pos = [50, 50]
        self.do_blit = False
        self.game = game
        self.surf = game.SCREEN

        self.lastMove = 99999999999

        self.velo_def = [0, 0]
        self.velo_x = 0
        self.velo_y = 0

        self.sprite = PlayerSprite(self)

        self.moving = [False, False, False, False]

    def tick(self):
        if self.do_blit:
            self.game.reDraw = True
            self.sprite.display(self.surf.screen)
            #self.surface.screen.blit(self.image, self.pos)
            self.do_blit = False
       # print self.lastMove - time.time()
        if True in self.moving and abs(self.lastMove - time.time()) >= .08:
            self.lastMove = time.time()
            if self.moving[0]: self.move(x=-1)
            if self.moving[1]: self.move(x=1)#down
            if self.moving[2]: self.move(y=-1)#left
            if self.moving[3]: self.move(y=1)#right

    def move(self, x=0, y=0):
        self.pos[1]+=x*10
        self.pos[0]+=y*10
        self.do_blit = True
        if y < 0 and self.sprite.dir == 1:
            self.sprite.flip()
        elif y > 0 and self.sprite.dir == -1:
            self.sprite.flip()
Esempio n. 6
0
                                 player.y)
            sprites.add(bullet)
            bulletsEnemy.add(bullet)


def new_enemy():
    enemy = Enemy()
    sprites.add(enemy)
    enemies.add(enemy)


ss = SpriteSheet('Lightning.png')
player_imgs = []
player_imgs.append(ss.get_image(0, 0, 30, 30))
player_imgs.append(ss.get_image(32, 0, 30, 30))
player_imgs.append(ss.get_image(64, 0, 30, 30))
player_imgs.append(ss.get_image(96, 0, 30, 30))

ss1 = SpriteSheet('UFO.png')
enemy_imgs = []
enemy_imgs.append(ss1.get_image(0, 0, 30, 30))
enemy_imgs.append(ss1.get_image(32, 0, 30, 30))
enemy_imgs.append(ss1.get_image(64, 0, 30, 30))
enemy_imgs.append(ss1.get_image(96, 0, 30, 30))

player = Player()
for i in range(4):
    new_enemy()
PlayerSprite.add(player)
sprites.add(player)
Esempio n. 7
0
File: main.py Progetto: martyni/rpg
    StaticSprite(**child.settings) for child in LEVELS['l1'].children['static']
]

#Create Player character
PC = PlayerSprite(
    34,
    64,
    i=controls.WIDTH / 2 - 20,
    j=controls.HEIGHT / 2 - 35,
    states={
        "default": ["assets/images/Iandalara_base0{}.bmp".format(4)] * 3 +
        ["assets/images/Iandalara_base0{}.bmp".format(i) for i in range(3)],
        "default_up":
        ["assets/images/Iandalara_base_up0{}.bmp".format(4)] * 3 +
        ["assets/images/Iandalara_base_up0{}.bmp".format(i) for i in range(3)],
        "default_right": ["assets/images/Iandalara_right00.bmp"],
        "default_left": ["assets/images/Iandalara_left00.bmp"],
        "up":
        ["assets/images/Iandalara_up0{}.bmp".format(i) for i in range(4)],
        "down":
        ["assets/images/Iandalara_down0{}.bmp".format(i) for i in range(4)],
        "left":
        ["assets/images/Iandalara_left0{}.bmp".format(i) for i in range(4)],
        "right":
        ["assets/images/Iandalara_right0{}.bmp".format(i) for i in range(4)],
    },
)
LEVEL_SPRITES.append(PC)
PC_PHYSICAL_GROUP.add(PC)

# pylint: disable=expression-not-assigned
Esempio n. 8
0
 def game_reset(self):
     self.started = False
     self.rock_group = set()
     self.ship = PlayerSprite(self.ship_imgs, self.thruster_snd, 400, 250, 0, 0, 270, 35, self.ships, self.missiles)
     self.lives = 3
     self.score = 0
Esempio n. 9
0
class Window(pyglet.window.Window):
    def __init__(self, *args, **kwargs):
        super(Window, self).__init__(*args, **kwargs)

        self.score = 0
        self.difficulty = self.score + 50
        self.lives = 3
        self.time = 0.5
        self.ships = pyglet.graphics.Batch()
        self.rocks = pyglet.graphics.Batch()
        self.missiles = pyglet.graphics.Batch()
        self.started = False
        self.rock_trigger = 0

        # Images
        self.background = pyglet.image.load('static/images/nebula_blue.s2014.png')

        self.rock_img = pyglet.image.load('static/images/asteroid_blue.png')
        utils.center_image_anchor(self.rock_img)

        ship_sequence = pyglet.image.load('static/images/double_ship.png')
        self.ship_imgs = pyglet.image.ImageGrid(ship_sequence, 1, 2)
        utils.center_image_grid_anchors(self.ship_imgs)
        self.splash_img = pyglet.image.load('static/images/splash.png') 

        # Sounds
        self.thruster_snd = pyglet.media.load('static/sounds/rocket.ogg', streaming=False)
        self.explosion_snd = pyglet.media.load('static/sounds/explosion.ogg', streaming=False)
        self.background_music = pyglet.media.load('static/sounds/space1.mp3', streaming=False)
        self.background_music.play()

        # Sprite Groups
        self.rock_group = set()
        self.missile_group = set()

        # Spites 
        self.ship = PlayerSprite(self.ship_imgs, self.thruster_snd, 400, 250, 0, 0, 270, 35, self.ships, self.missiles)
        self.splash = Sprite(self.splash_img, 200, 125)

        # Screen Text
        self.text_lives = pyglet.text.Label('Lives=' + str(self.lives),
                                            font_name='Times New Roman',
                                            font_size=36, x=10, y=10)
        self.text_score = pyglet.text.Label('Score=' + str(self.score),
                                            font_name='Times New Roman',
                                            font_size=36, x=10, y=60)

        # Keymaps
        self.key_downs = {key.UP:self.accel, key.LEFT:self.left, key.RIGHT:self.right, key.SPACE:self.fire, key.ESCAPE:pyglet.app.exit}
        self.key_ups = {key.UP:self.decel, key.LEFT:self.right, key.RIGHT:self.left}

        pyglet.clock.schedule_interval(self.update, 1/60.0)  # update at 60Hz
    def game_reset(self):
        self.started = False
        self.rock_group = set()
        self.ship = PlayerSprite(self.ship_imgs, self.thruster_snd, 400, 250, 0, 0, 270, 35, self.ships, self.missiles)
        self.lives = 3
        self.score = 0
        # intro screen 
        # self.splash.draw()

    def display_score(self):
        self.text_lives = pyglet.text.Label('Lives=' + str(self.lives),
                                            font_name='Times New Roman',
                                            font_size=36, x=10, y=10)
        self.text_score = pyglet.text.Label('Score=' + str(self.score),
                                            font_name='Times New Roman',
                                            font_size=36, x=10, y=60)
    def start_game(self):
        #Function to start game on initial mouse click
        self.splash.delete()
        self.started = True

    def accel(self):
        self.ship.thrusters = True
    
    def decel(self):
        self.ship.thrusters = False

    def left(self):
        self.ship.angle_vel -= 5

    def right(self):
        self.ship.angle_vel += 5
    
    def fire(self):
        self.ship.shoot(self.missile_group)

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

    def on_key_press(self, symbol, modifiers):
        for key in self.key_downs:
            if key == symbol:
                self.key_downs[symbol]()

    def on_key_release(self, symbol, modifiers):
        for key in self.key_ups:
            if key == symbol:
                self.key_ups[symbol]()

    def put_rock(self):
        rock_position = utils.random_position(WIDTH, HEIGHT)
        rock = MovingSprite (self.rock_img, rock_position[0], rock_position[1],
                             sound=self.explosion_snd, diff=self.difficulty,
                             radius=40, batch=self.rocks)
        self.rock_group.add(rock)

    def trigger_put_rock(self):
        self.rock_trigger += 1
        if self.rock_trigger > 60 and len(self.rock_group) < 10:
            self.put_rock()
            self.rock_trigger = 0
    # TODO Implement Sheilds
    def on_draw(self):
        self.clear()
        self.background.blit(0, 0)
        self.ships.draw()
        self.rocks.draw()
        self.missiles.draw()
        self.text_lives.draw()
        self.text_score.draw()
        if not self.started:
           self.splash = Sprite(self.splash_img, 200, 125)
           self.splash.draw()

    def update(self, dt):
        if self.started:
            self.trigger_put_rock()
            for rock in self.rock_group:
                rock.update(WIDTH, HEIGHT) 
            self.ship.update(WIDTH, HEIGHT) 

            local_missiles = set(self.missile_group)
            for missile in local_missiles:
                if not missile.update(WIDTH, HEIGHT):
                    self.missile_group.remove(missile)
                    missile.delete()

            if group_collide(self.rock_group, self.ship):
                self.lives -= 1
                self.explosion_snd.play()

            if group_group_collide(self.missile_group, self.rock_group):
                self.score += 10
                self.difficulty  += self.score + 50
                self.explosion_snd.play()

            self.display_score()
        
        if self.lives < 0:
            self.game_reset()