Exemplo n.º 1
0
 def __init__(self):
     super(L1, self).__init__()
     self.dy, self.zl = Ziji(), Diji()
     self.add(self.dy)
     self.add(self.zl)
     self.coli = [
         cm.CollisionManagerBruteForce(),
         cm.CollisionManagerBruteForce()
     ]
     self.eners = []
     self.schedule(self.run)
     self.qu = []
     self.cd = 0
Exemplo n.º 2
0
    def __init__(self,
                 boat,
                 free_units={},
                 ghost_delay=0,
                 is_menu=False,
                 difficult='medium'):
        super().__init__()
        # Словарь всех юнитов
        self.units = {}
        self.fill_units_empty()
        self.free_units = free_units
        self.difficult = difficult
        self.is_finish = False
        self.is_menu = is_menu

        # Объект "следа"
        self.ghost = Ghost(self, ghost_delay)
        self.add(self.ghost)

        self.boat = boat

        self.col_status = cm.CollisionManagerBruteForce()
        self.to_clean_list = []

        temp_dict = self.boat.get_arranged_units()
        #temp_dict = {Bowman.name: [(176, 304), (16, 240)],
        #                Trader.name: [(176, 112)]}
        self.set_unit_from_save(temp_dict)

        self.schedule(self.update)
        if not is_menu:
            self.wave_generator = WaveGenerator(difficult=self.difficult)
            self.schedule(self.spawn_wave)
            self.schedule_interval(self.clear_out_of_screen, 3)
Exemplo n.º 3
0
 def __init__(self,settingsLayer,player):
     super(StatusMenu,self).__init__()
     self.position = (0,WINDOW_HEIGHT-STATUS_BAR_HEIGHT)
     self.controller = objects.Objects.get_controller()
     self.cm = collision_model.CollisionManagerBruteForce()
     self.settingsMenu = settingsLayer
     self.player = player
Exemplo n.º 4
0
    def __init__(self):
        self.keyPressed = False
        self.counter = 0
        self.kierunek = "prawo"
        super(SpriteLayer, self).__init__()
        image = pyglet.image.load("resources/spriteV2.png")
        self.collision_manager = cm.CollisionManagerBruteForce()
        self.direction = "right"

        self.bullets = []
        image_gride = pyglet.image.ImageGrid(image,
                                             8,
                                             10,
                                             item_width=60,
                                             item_height=65)
        self.animationRight = pyglet.image.Animation.from_image_sequence(
            image_gride[0:10], 0.1, True)
        self.animationLeft = pyglet.image.Animation.from_image_sequence(
            image_gride[20:30], 0.1, True)
        self.animationStop = pyglet.image.Animation.from_image_sequence(
            image_gride[70:73], 0.1, True)

        self.sprite = Sprite(self.animationStop)

        pozycjaX = 200
        for i in range(20):
            nietoperek = Enemy(pozycjaX + i * 300, 500, 100, 100, 2)
            super().add(nietoperek.returnSprite())

        super().add(self.sprite)
        #self.sprite.scale = 1.2
        self.sprite.do(GameAction())
        self.schedule(self.update)
Exemplo n.º 5
0
    def __init__(self):
        super(Game, self).__init__(255, 255, 255, 255)

        self.player = player.Player()

        self.collision_manager = cm.CollisionManagerBruteForce()

        self.add(self.player, z=1)
        self.player.do(Move())
        self.player.jumping = False

        self.collision_manager.add(self.player)

        self.obstacle = cocos.sprite.Sprite(resources.obstacle)
        self.obstacle.position = 770, 30
        self.obstacle.velocity = -100, 0
        self.obstacle.speed = 50
        self.add(self.obstacle, z=1)
        self.obstacle.do(Move())

        self.obstacle.cshape = cm.AARectShape(self.obstacle.position,
                                              self.obstacle.width / 3,
                                              self.obstacle.height / 2)
        self.collision_manager.add(self.obstacle)

        self.player.schedule(self.update)
Exemplo n.º 6
0
    def __init__(self):

        super(SpriteLayer, self).__init__()
        image = pyglet.image.load("resources/sprite.png")
        self.collision_manager = cm.CollisionManagerBruteForce()
        self.direction = "right"

        self.bullets = []
        image_gride = pyglet.image.ImageGrid(image,
                                             8,
                                             10,
                                             item_width=120,
                                             item_height=130)
        self.animationRight = pyglet.image.Animation.from_image_sequence(
            image_gride[0:10], 0.1, True)
        self.animationLeft = pyglet.image.Animation.from_image_sequence(
            image_gride[20:30], 0.1, True)

        self.sprite = Sprite(self.animationRight)

        pozycjaX = 200
        for i in range(20):
            nietoperek = Enemy(pozycjaX + i * 300, 500, 100, 100, 2)
            super().add(nietoperek.returnSprite())

        super().add(self.sprite)
        self.sprite.do(GameAction())
        self.schedule(self.update)
Exemplo n.º 7
0
    def __init__(self):
        super(Game,self).__init__(202, 202, 125, 155)
        self.collision_manager = cm.CollisionManagerBruteForce()
        img = pyglet.image.load("resources/sprite.png")
        self.img2= pyglet.image.load("resources/fireball.png")
        self.bullets = []
        self.kierunek = "Right"
        self.img_grid = pyglet.image.ImageGrid(img, 8,10, item_width = 120, item_height=130)
        self.anim = pyglet.image.Animation.from_image_sequence(self.img_grid[50:51], 1/150 , True)
        self.animWalkUp = pyglet.image.Animation.from_image_sequence(self.img_grid[10:20], 1/15 , True)
        self.animWalkDown = pyglet.image.Animation.from_image_sequence(self.img_grid[30:40], 1/15 , True)
        self.animWalkRight = pyglet.image.Animation.from_image_sequence(self.img_grid[0:10], 1/15 , True)
        self.animWalkLeft = pyglet.image.Animation.from_image_sequence(self.img_grid[20:30], 1/15 , True)
        self.leftPressed = False
        self.righPressed = False
        self.upPressed   = False
        self.downPressed = False
        self.spacePressed= False
        self.keysPressed = []
        self.keysPressed.append(None)
        self.keysPressed.append(None)
        self.keysPressed.append(None)
        self.player = cocos.sprite.Sprite(self.anim)
        self.player.position = 400, 225
        self.player.velocity = 0, 0
        self.player.speed =150

        super().add(self.player)

        self.player.do(Move())
Exemplo n.º 8
0
    def __init__(self):
        super().__init__()
        self.collisions = cm.CollisionManagerBruteForce()
        self.background = None

        if not self.load_map():
            self.generate_new_map()
Exemplo n.º 9
0
 def __init__(self):
     super(GameLayer, self).__init__()
     self.add_hero()
     self.add_asteroids()
     # self.add_boss()
     self.CollMan = cm.CollisionManagerBruteForce()
     self.schedule(self.update)
Exemplo n.º 10
0
    def __init__(self):
        super(Game, self).__init__(202, 202, 125, 155)
        self.collision_manager = cm.CollisionManagerBruteForce()
        self.image = pyglet.image.load("resources/sprite.png")
        self.fireballImage = pyglet.image.load("resources/fireball.png")
        self.wolfImage = pyglet.image.load("resources/wolf.png")

        self.image_grid = pyglet.image.ImageGrid(self.image,
                                                 8,
                                                 10,
                                                 item_width=120,
                                                 item_height=130)
        self.image_grid2 = pyglet.image.ImageGrid(self.wolfImage,
                                                  6,
                                                  20,
                                                  item_width=32,
                                                  item_height=64)

        self.walkingWolf = pyglet.image.Animation.from_image_sequence(
            self.image_grid2[40:45], 0.1, True)
        self.wolfKnockout = pyglet.image.Animation.from_image_sequence(
            self.image_grid2[66:70], 0.1, True)

        self.image_grid_fireball = pyglet.image.ImageGrid(self.fireballImage,
                                                          8,
                                                          8,
                                                          item_width=64,
                                                          item_height=64)
        self.fireballAnimation = pyglet.image.Animation.from_image_sequence(
            self.image_grid_fireball[8:16], 0.1, True)

        self.animationStop = pyglet.image.Animation.from_image_sequence(
            self.image_grid[10:11], 0.1, True)
        self.animationUp = pyglet.image.Animation.from_image_sequence(
            self.image_grid[10:20], 0.1, True)
        self.animationDown = pyglet.image.Animation.from_image_sequence(
            self.image_grid[30:40], 0.1, True)
        self.animationRight = pyglet.image.Animation.from_image_sequence(
            self.image_grid[0:10], 0.1, True)
        self.animationLeft = pyglet.image.Animation.from_image_sequence(
            self.image_grid[20:30], 0.1, True)

        self.player = cocos.sprite.Sprite(self.animationStop)

        self.kierunek = "left"

        self.bullets = []

        self.player.position = 400, 100
        self.player.velocity = 0, 0
        self.player.speed = 500

        super().add(self.player)

        self.player.do(Move())
        self.schedule(self.update)
        self.lives = 10
        self.motion = True
        self.points = 0
Exemplo n.º 11
0
    def __init__(self):
        super(Game, self).__init__(102, 102, 225, 255)

        self.collision_manager = cm.CollisionManagerBruteForce()

        self.player = cocos.sprite.Sprite('eleph2.png')
        self.player.position = 400, 25
        self.player.velocity = 0, 0
        self.player.speed = 150
        self.player.scale = .5
        self.add(self.player, z=2)

        self.player.cshape = cm.AARectShape(self.player.position,
                                            self.player.width // 2,
                                            self.player.height // 2)
        self.collision_manager.add(self.player)

        self.boss = cocos.sprite.Sprite('flaregun.png')
        self.boss.position = 400, 600
        self.boss.scale = 0.4
        self.add(self.boss, z=1)

        self.boss.cshape = cm.AARectShape(self.boss.position,
                                          self.boss.width // 2,
                                          self.boss.height // 2)
        self.collision_manager.add(self.boss)

        self.batch = cocos.batch.BatchNode()
        self.enemies = [cocos.sprite.Sprite('compass.png') for i in range(6)]
        positions = ((250, 125), (550, 125), (300, 325), (500, 325),
                     (150, 475), (650, 475))
        for num, enem in enumerate(self.enemies):
            enem.position = positions[num]
            enem.cshape = cm.AARectShape(enem.position, enem.width // 2,
                                         enem.height // 2)
            self.collision_manager.add(enem)
            self.batch.add(enem)

        self.add(self.batch, z=1)
        self.player.do(Move())

        move_basic = MoveBy((120, 0), 1)
        self.enemies[0].do(Repeat(move_basic + Reverse(move_basic)))
        self.enemies[1].do(Repeat(Reverse(move_basic) + move_basic))

        move_complex = (MoveBy((-75, 75), 1) + Delay(0.5) + MoveBy(
            (-75, -75), 1) + Delay(0.5) + MoveBy(
                (75, -75), 1) + Delay(0.5) + MoveBy((75, 75), 1) + Delay(0.5))
        self.enemies[2].do(Repeat(move_complex))
        self.enemies[3].do(Repeat(Reverse(move_complex)))

        move_jump = AccelDeccel(JumpBy((200, 0), 75, 3, 3))
        move_jump_rot = AccelDeccel(RotateBy(360, 3))
        self.enemies[4].do(Repeat(move_jump + Reverse(move_jump)))
        self.enemies[4].do(Repeat(move_jump_rot + Reverse(move_jump_rot)))
        self.enemies[5].do(Repeat(Reverse(move_jump) + move_jump))
        self.enemies[5].do(Repeat(Reverse(move_jump_rot) + move_jump_rot))

        self.schedule(self.update)
Exemplo n.º 12
0
    def __init__(self):
        super(Game,self).__init__(202, 202, 125, 155)
        self.collision_manager = cm.CollisionManagerBruteForce()
        self.collision_manager.enabled = True
        self.collision_manager.enabledDrawBoundingBox = True;
        img = pyglet.image.load("resources/sprite.png")
        self.img2= pyglet.image.load("resources/fireball.png")
        self.bullets = []
        self.kierunek = "Right"
        self.img_grid = pyglet.image.ImageGrid(img, 8,10, item_width = 120, item_height=130)
        self.anim = pyglet.image.Animation.from_image_sequence(self.img_grid[50:51], 1/150 , True)
        self.animWalkUp = pyglet.image.Animation.from_image_sequence(self.img_grid[10:20], 1/15 , True)
        self.animWalkDown = pyglet.image.Animation.from_image_sequence(self.img_grid[30:40], 1/15 , True)
        self.animWalkRight = pyglet.image.Animation.from_image_sequence(self.img_grid[0:10], 1/15 , True)
        self.animWalkLeft = pyglet.image.Animation.from_image_sequence(self.img_grid[20:30], 1/15 , True)
        self.leftPressed = False
        self.righPressed = False
        self.upPressed   = False
        self.downPressed = False
        self.spacePressed= False
        self.keysPressed = []
        self.keysPressed.append(None)
        self.keysPressed.append(None)
        self.keysPressed.append(None)
        self.player = cocos.sprite.Sprite(self.anim)
        self.player.position = 400, 225
        self.player.velocity = 0, 0
        self.player.speed =150
        self.player.scale = 0.2
        self.player.cshape = cm.AARectShape(
            self.player.position,
            self.player.width/2,
            self.player.height/2
        )

        super().add(self.player)
        self.collision_manager.add(self.player)
        super().add(self.player)

        #super().add(mapWalls().returnMapWalls())
        self.mapWalls= mapWalls(self.collision_manager)
        self.wallsColliding = self.mapWalls.returnMapWalls()
        for obj in self.wallsColliding:
            self.collision_manager.add(obj)
        super().add(self.mapWalls.returnMapWallsBatch())

        brick=segment(100,500).returnSprite()
        brick.cshape = cm.AARectShape(
            brick.position,
            brick.width,
            brick.height
        )
        self.collision_manager.add(brick)
        super().add(brick)
        #self.collision_manager.add(self.mapWalls
        self.licznik = 0
        self.player.do(Move())
        self.schedule(self.update)
Exemplo n.º 13
0
 def __init__(self, hotkeys, scroller):
     super(HotkeysLayer, self).__init__()
     self.scroller = scroller
     self.cm = collision_model.CollisionManagerBruteForce()
     self.hotkeysMenuOn = False
     self.hotkeys = hotkeys
     # self.hotkeysMenu = HotkeysMenu(self.hotkeys, 190, 200)
     self.hotkeysList = []
     self.keyNumList = []
Exemplo n.º 14
0
    def __init__(self):
        super().__init__()

        self.police = Police()
        self.car = Car()

        self.add(self.police, 1)
        self.add(self.car, 0)

        self.coll_manager = cm.CollisionManagerBruteForce()
Exemplo n.º 15
0
def main():
    global keyboard
    global collision_manager

    collision_manager = cm.CollisionManagerBruteForce()

    director.init(width=MAP_SIZE[0],
                  height=MAP_SIZE[1],
                  autoscale=True,
                  resizable=True)

    # Create a layer
    player_layer = Mqtt_layer(collision_manager)

    # create an obstacle and add to layer
    obstacle1 = CollidableSprite('sprites/obstacle.png', 200, 200, 0)
    player_layer.add(obstacle1)
    obstacle1.velocity = (0, 0)
    collision_manager.add(obstacle1)

    # create an obstacle and add to layer
    obstacle2 = CollidableSprite('sprites/obstacle.png', 320, 240, 0)
    player_layer.add(obstacle2)
    obstacle2.velocity = (0, 0)
    collision_manager.add(obstacle2)

    # create an obstacle and add to layer
    obstacle4 = CollidableSprite('sprites/obstacle.png', 490, 490, 0)
    player_layer.add(obstacle4)
    obstacle4.velocity = (0, 0)
    collision_manager.add(obstacle4)

    # create the car and add to layer
    car = CollidableSprite('sprites/Black_viper.png', 100, 100, 10)
    action = actions.interval_actions.ScaleBy(0.25, 0)
    car.do(action)

    player_layer.add(car)
    car.velocity = (0, 0)

    # Set the sprite's movement class.
    car.do(Car())

    # Create a scene and set its initial layer.
    main_scene = scene.Scene(player_layer)

    # collisions
    collision_manager.add(car)

    # Attach a KeyStateHandler to the keyboard object.
    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)

    # Play the scene in the window.
    director.run(main_scene)
Exemplo n.º 16
0
    def __init__(self):
        super().__init__()

        self.player = p_layer()
        self.enemy = Enemy()
        self.life_bar = life_bar()
        self.enemy_num = 1
        self.add(self.player, 1)
        self.add(self.enemy, 0)
        self.add(self.life_bar, 2)
        self.coll_manager = cm.CollisionManagerBruteForce()
Exemplo n.º 17
0
    def __init__(self, map_layer, chara_layer):
        super().__init__()
        self.schedule(self.on_update)
        self.pacman = chara_layer.actorPacMan
        self.walls = map_layer.walls
        self.ghosts = chara_layer.ghosts
        self.pellets = map_layer.pellets
        self.POWpellets = map_layer.POWpellets
        self.map_layer = map_layer
        self.chara_layer = chara_layer
        self.score = 0
        self.lives = 3
        self.POWstartTime = 0
        self.POWendTime = 0
        self.time = 0
        self.fixWall = False

        self.score_label = cocos.text.Label('Score: 0' ,
                font_size=30,
                anchor_x='center',
                anchor_y='center',
                color=(255,255,255,255))
        self.score_label.position = 300, 750
        self.add(self.score_label)

        self.lives_label = cocos.text.Label('Lives Left: 3',
                font_size=15,
                anchor_x='center',
                anchor_y='center',
                color=(255,255,255,255))
        self.lives_label.position = 300, 704
        self.add(self.lives_label)


        self.wall_manager = cm.CollisionManagerBruteForce()

        self.pellet_manager = cm.CollisionManagerBruteForce()

        self.ghost_manager = cm.CollisionManagerBruteForce()

        self.POWpellet_manager = cm.CollisionManagerBruteForce()
Exemplo n.º 18
0
 def __init__(self, gameMap, scroller,player):
     super(InfoLayer, self).__init__()
     self.map = gameMap
     self.scroller = scroller
     self.cm = collision_model.CollisionManagerBruteForce(
     )  # Grid having problems...
     self.miniMapToggled = False
     self.player = player
     # Also hard coded.
     self.position = (3 * WINDOW_WIDTH / 4.0 + 90, WINDOW_HEIGHT / 4.0 - 20)
     self.visibleCircles = []
     # Define the minimap rectangle sprite that we toggle on/off.
     self.miniMap = MiniMap(
         self.map.AS, self.map.w, self.map.h, self.map.edges, self.player)
     self.map.minimap = self.miniMap  # adds this MiniMap instance to the map
Exemplo n.º 19
0
    def __init__(self):
        super(MainLayer, self).__init__()
        self.collision_manager = cm.CollisionManagerBruteForce()

        # Игрок
        self.player = Player(1)
        self.add(self.player, z=2)
        self.collision_manager.add(self.player)

        # Свины
        self.enemies = [Swin(0, (500, 600))]
        for e in self.enemies:
            e.do(SwinAction())
            self.add(e)
            self.collision_manager.add(e)
Exemplo n.º 20
0
    def __init__(self):
        self.keyPressed = False
        self.counter = 0
        self.kierunek = "prawo"
        super(SpriteLayer,self).__init__()
        image = pyglet.image.load("resources/spriteV2.png")
        self.collision_manager = cm.CollisionManagerBruteForce()
        self.direction = "right"

        self.bullets = []
        self.nietoperki = []
        image_gride = pyglet.image.ImageGrid(image,8,10,item_width=60,item_height=65)
        self.animationRight=pyglet.image.Animation.from_image_sequence(image_gride[0:10],0.1,True)
        self.animationLeft=pyglet.image.Animation.from_image_sequence(image_gride[20:30],0.1,True)
        self.animationStop=pyglet.image.Animation.from_image_sequence(image_gride[70:73],0.1,True)
        self.animationStopPrawo=pyglet.image.Animation.from_image_sequence(image_gride[0:1],0.1,True)
        self.animationStopLewo=pyglet.image.Animation.from_image_sequence(image_gride[20:21],0.1,True)



        self.sprite = Sprite(self.animationStop)
        
        pozycjaX = 200    
        for i in range(20):
            nietoperek = Enemy(pozycjaX+i*300,500,100,100,2)
            super().add(nietoperek.returnSprite())
            self.collision_manager.add(nietoperek.returnSprite())
            self.nietoperki.append(nietoperek)

        ogrPositionsX = [24,48,64,119,134,147,168,183]
        tileSize = 32
        ogrPositionTileSize = []
        for position in ogrPositionsX:
            ogrPositionTileSize.append(position *tileSize)
        self.ogrs = []
        for x in ogrPositionTileSize:
            self.ogrs.append(Enemy2(x,500))

        for each in self.ogrs:
            super().add(each.returnSprite())
            self.collision_manager.add(each.returnSprite())


        super().add(self.sprite)
        #self.sprite.scale = 1.2
        self.sprite.do(GameAction())
        self.schedule(self.update)
Exemplo n.º 21
0
    def __init__(self):
        self.__inits = {
            Feeder: self.__init_feeder,
            Player: self.__init_player,
            Food: self.__init_food
        }
        self.__collisions = {
            (Player, Player): self.__collision_pvp,
            (Player, Food):   self.__collision_pvf,
            (Food, Player):   lambda dt, f, p: self.__collision_pvf(dt, p, f),
            (Player, Feeder): self.__collision_pvfeed,
            (Feeder, Player): lambda dt, f, p: self.__collision_pvfeed(dt, p, f)
        }
        self.__collision_manager = cm.CollisionManagerBruteForce()
        self.__entities = defaultdict(lambda: [])

        self.player_death_event = Event()
Exemplo n.º 22
0
    def __init__(self):
        super().__init__()
        window_x, window_y = cocos.director.director.get_window_size()

        self.player = CollidableSprite('player.png', window_x / 2, window_y / 2)
        self.add(self.player)

        self.collision_manager = cm.CollisionManagerBruteForce()
        self.collision_manager.add(self.player)

        self.pressed_keys = set()

        self.schedule(self.process_keys)

        self.time_since_enemy_spawn = 0
        self.schedule(self.spawn_enemies)

        self.schedule(self.collisions)
    def __init__(self, pos):
        super(MainLayer, self).__init__()
        self.collision_manager = cm.CollisionManagerBruteForce()

        # Игрок
        self.player = Player(game_controller.player_id, pos)
        self.add(self.player, z=2)
        self.collision_manager.add(self.player)

        # Другие игроки
        self.other_players = []
        for i in range(game_controller.max_players):
            if i != self.player.player_id - 1:
                online_player = OnlinePlayer(i + 1)
                self.other_players.append(online_player)
                self.add(online_player)
                self.collision_manager.add(online_player)

        self.schedule(self.update)
Exemplo n.º 24
0
    def __init__(self):
        super(GameScene, self).__init__()
        self.background = BackgroundLayer('backgrounds/bluespace.png')
        self.spaceship = SpaceShipSprite()
        EnemyFactory.populate_enemy("Aerolite", qnt=15)
        EnemyFactory.populate_enemy("Rohenian", qnt=15)
        self.aerolites = EnemyFactory.create_enemy("Aerolite", 10)
        self.rohenians = EnemyFactory.create_enemy("Rohenian", 5)
        self.isrecharged = False
        self.__recharge()

        self.collision_manager = collision.CollisionManagerBruteForce()
        self.__collision_manager_add()

        self.schedule(self.check_collisions)

        clock.schedule_interval(self.__check_buttons, .15)

        self.show_bullets_string()
        self.show_hp_string()

        self.new_game()
Exemplo n.º 25
0
    def __init__(self, R):
        super(GameScene, self).__init__()
        self.R = R
        self.batch = BatchNode()
        self.collisionManager = CollisionModel.CollisionManagerBruteForce()
        #Main Background
        mainBack = Sprite(R._BACKGROUND[4])
        mainBack.position = (director._window_virtual_width / 2,
                             director._window_virtual_height / 2)
        self.add(mainBack)
        #Parallax-BackGround
        self.add(
            ParallaxBackground((0, 0, 800, 600),
                               [R._BACKGROUND[1], R._BACKGROUND[1]], 16, 10))
        self.add(
            ParallaxBackground((0, 0, 800, 600),
                               [R._BACKGROUND[2], R._BACKGROUND[2]], 4, 10))
        self.add(
            ParallaxBackground((0, 0, 800, 600),
                               [R._BACKGROUND[3], R._BACKGROUND[3]], 2, 10))

        #Add Player
        self.PLAYER = Player()
        self.ENEMY = Enemy()
        self.HUD = HUD()

        #set Data
        self.PLAYER.set(self)
        self.ENEMY.set(self)
        self.HUD.set(self)

        #Add layers
        self.add(self.PLAYER)
        self.add(self.ENEMY)
        self.add(self.HUD)

        #Adding Batch to Layer
        self.add(self.batch)
Exemplo n.º 26
0
    def __init__(self):
        super(GameLayer, self).__init__()
        # self.CollMan = cm.CollisionManager()
        #self.CollMan = cm.CollisionManagerGrid(0.0, 640,
        #0.0, 480,
        # 100,
        #100)
        self.CollMan = cm.CollisionManagerBruteForce()
        self.add_hero()
        self.add_asteroids()
        self.add_asteroid()
        #self.boom()
        # self.add_boss()
        self.CollMan.add(self.hero)
        self.CollMan.add(self.asteroid1)
        self.CollMan.add(self.asteroid2)

        #self.check_known
        # self.check_list()

        # iterator for "count" method test.
        self.i = 0

        #proximity to check distance between hero & test asteroid.
        self.proximity = (0.0, 0.0)

        self.asteroid_list = set()
        self.remove_asteroid_list = set()
        self.asteroid_list.add(self.asteroid_x)
        self.asteroid_list.add(self.asteroid1)
        self.asteroid_list.add(self.asteroid2)

        # self.counter(self.i)
        self.add_count_label()
        self.add_pos_x_label()
        self.add_proximity_label()

        self.schedule(self.update)
Exemplo n.º 27
0
from pyglet.window import key
import pyglet
import cocos.collision_model as cm
"""config file which contains common objects"""

collision_manager = cm.CollisionManagerBruteForce()
keyboard = key.KeyStateHandler()
music_player = pyglet.media.Player()
Exemplo n.º 28
0
    def __init__(self):
        super(Game, self).__init__(202, 202, 125, 155)
        self.collision_manager = cm.CollisionManagerBruteForce()
        self.image = pyglet.image.load("resources/sprite.png")
        self.fireballImage = pyglet.image.load("resources/fireball.png")
        self.wolfImage = pyglet.image.load("resources/wolf.png")

        self.image_grid = pyglet.image.ImageGrid(self.image,
                                                 8,
                                                 10,
                                                 item_width=120,
                                                 item_height=130)
        self.image_grid2 = pyglet.image.ImageGrid(self.wolfImage,
                                                  6,
                                                  20,
                                                  item_width=32,
                                                  item_height=64)

        self.walkingWolf = pyglet.image.Animation.from_image_sequence(
            self.image_grid2[40:45], 0.1, True)
        self.wolfKnockout = pyglet.image.Animation.from_image_sequence(
            self.image_grid2[66:70], 0.1, True)

        self.image_grid_fireball = pyglet.image.ImageGrid(self.fireballImage,
                                                          8,
                                                          8,
                                                          item_width=64,
                                                          item_height=64)
        self.fireballAnimation = pyglet.image.Animation.from_image_sequence(
            self.image_grid_fireball[8:16], 0.1, True)

        self.animationStop = pyglet.image.Animation.from_image_sequence(
            self.image_grid[10:11], 0.1, True)
        self.animationUp = pyglet.image.Animation.from_image_sequence(
            self.image_grid[10:20], 0.1, True)
        self.animationDown = pyglet.image.Animation.from_image_sequence(
            self.image_grid[30:40], 0.1, True)
        self.animationRight = pyglet.image.Animation.from_image_sequence(
            self.image_grid[0:10], 0.1, True)
        self.animationLeft = pyglet.image.Animation.from_image_sequence(
            self.image_grid[20:30], 0.1, True)

        self.player = cocos.sprite.Sprite(self.animationStop)

        self.kierunek = "left"

        self.bullets = []

        self.player.position = 400, 100
        self.player.velocity = 0, 0
        self.player.speed = 500

        self.wolves = []

        for i in range(5):
            wilk = enemy(randint(50, 750), self.walkingWolf)
            super().add(wilk.returnSprite())
            self.collision_manager.add(wilk.returnSprite)
            self.wolves.append(wilk)

        super().add(self.player)

        self.player.do(Move())
        self.schedule(self.update)
        self.lives = 10
        self.motion = True
        self.points = 0

        self.labelPoints = cocos.text.Label(str(self.points),
                                            font_size=32,
                                            font_name="Comic Sans",
                                            color=(255, 20, 147, 100))
        self.labelLives = cocos.text.Label(str(self.lives),
                                           font_size=32,
                                           font_name="Comic Sans",
                                           color=(25, 255, 25, 100))

        self.naszaEtykieta = cocos.text.Label("Antek",
                                              font_size=20,
                                              font_name="Comic Sans",
                                              color=(25, 255, 25, 30))

        self.naszaEtykieta.position = 0, 400
        super().add(self.naszaEtykieta)

        self.labelPoints.position = 700, 600
        self.labelLives.position = 50, 600

        super().add(self.labelPoints)
        super().add(self.labelLives)

        self.canGo = True
Exemplo n.º 29
0
class MouseInput(ScrollableLayer):
    anchor = (0, 0)
    is_event_handler = True
    walls = []
    labels = []
    collision = cm.CollisionManagerBruteForce()
    palitraCollision = cm.CollisionManagerBruteForce()

    focusX = 1500
    focusY = 500

    currentType = 1
    currentSprite = None

    appendMode = 1

    buttonsTextHelp = "q-pallet, 1 - background, 2 - unmovable background, 3 - indestructible object, 4 - object, t - increase type"

    viewPoint = (0, 0)
    currentWidth = 0
    currentHeight = 0

    def __init__(self, keyboard, scroller):
        super(MouseInput, self).__init__()
        self.set_view(0, 0, 2000, 800, 0, 0)

        self.keyboard = keyboard
        self.scroller = scroller
        self.buttonsProvider = ButtonsProvider()
        self.objectProvider = ObjectProvider(self.keyboard, self.collision,
                                             self.palitraCollision)

        self.helperLayer = cocos.layer.Layer()
        self.buttonsInfo = Label(self.buttonsTextHelp,
                                 font_name='Helvetica',
                                 font_size=12,
                                 anchor_x='left',
                                 anchor_y='top')
        self.text = Label("Some text",
                          font_name='Helvetica',
                          font_size=12,
                          anchor_x='left',
                          anchor_y='bottom')
        self.helperLayer.add(self.text)
        self.helperLayer.add(self.buttonsInfo)
        self.add(self.helperLayer, z=5)

        self.palitra = cocos.layer.Layer()
        self.palitraObject = []
        self.add(self.palitra, z=2)
        self.loadPalitra()
        self.resizeMap()

        map = self.buttonsProvider.getMap()
        if map: self.loadMap(map)

    def loadMap(self, map):
        for block in map:
            try:
                x, y = block['position']
                spriteObj = sprite.Sprite(block['src'])
                spriteObj.src = block['src']
                spriteObj.position = (x, y)
                spriteObj.type = block['type']
                spriteObj.cshape = cm.AARectShape(spriteObj.position,
                                                  spriteObj.width // 2,
                                                  spriteObj.height // 2)

                self.walls.append(spriteObj)
                self.add(spriteObj)

                if spriteObj.type:
                    self.collision.add(spriteObj)
            except pyglet.resource.ResourceNotFoundException:
                pass

        # spriteObj = sprite.Sprite('backgrounds/fill.png')
        # spriteObj.src = 'backgrounds/fill.png'
        # spriteObj.position = (0, 0)
        # spriteObj.type = 0
        #
        # self.add(spriteObj)
        #
        # return

    def loadPalitra(self):
        #imgs = sorted(glob.glob('assets/*'))
        imgs = sorted(scandir('assets'))

        names = []
        for file in imgs:
            names.append(file.name)

        for src in sorted(names):
            src = 'assets/' + str(src)

            land = sprite.Sprite(src)
            land.cshape = cm.AARectShape(land.position, land.width // 2,
                                         land.height // 2)
            land.src = src
            self.palitra.add(land)
            self.palitraObject.append(land)
            self.palitraCollision.add(land)

    def resizeMap(self):
        col = 0
        row = 0
        offset = 2
        for land in self.palitraObject:
            x = land.width * .5 + land.width * col + offset - self.currentWidth // 2
            y = land.height * .5 + land.height * row + offset - self.currentHeight // 2
            col += 1
            if col > 19:
                row += 1
                col = 0
            land.position = (x, y)
            land.cshape = cm.AARectShape(land.position, land.width // 2,
                                         land.height // 2)

    def checkButtons(self, dt):
        x_direction = self.keyboard[key.LEFT] - self.keyboard[key.RIGHT]
        y_direction = self.keyboard[key.DOWN] - self.keyboard[key.UP]
        x, y = self.position

        if self.keyboard[key.Q]:
            self.palitra.visible = 1 - self.palitra.visible
            sleep(0.1)

        if x_direction:
            x += x_direction * 20

        if y_direction:
            y += y_direction * 20

        if x_direction or y_direction:
            self.set_view(0, 0, self.currentWidth, self.currentHeight, x, y)

        if self.keyboard[key.SPACE]:
            self.set_view(0, 0, self.currentWidth, self.currentHeight, 0, 0)

        self.setLayersPosition()

        if self.keyboard[key.S]:
            self.buttonsProvider.exportToFile(self.walls)

        if self.keyboard[key.T]:
            self.currentType += 1
            if self.currentType > 4: self.currentType = 1
            self.updateInfo('T')
            sleep(0.1)

        if self.keyboard[key.NUM_1]:
            self.currentType = 1
            self.updateInfo('1')

        if self.keyboard[key.NUM_2]:
            self.currentType = 2
            self.updateInfo('2')

        if self.keyboard[key.NUM_3]:
            self.currentType = 3
            self.updateInfo('3')

        if self.keyboard[key.NUM_4]:
            self.currentType = 4
            self.updateInfo('4')

    def setLayersPosition(self):
        x, y = self.getCoordByViewPoint(0, 0)
        self.helperLayer.position = (x, y)
        self.palitra.position = (x + 2, y + 16)
        #self.text.position = (x, y)
        #self.buttonsInfo.position = (x, y + self.currentHeight)

    def resize(self, width, height):
        self.viewPoint = (width // 2, height // 2)
        self.currentWidth = width
        self.currentHeight = height

        self.buttonsInfo.position = (0, self.currentHeight)
        self.setLayersPosition()
        #self.resizeMap()

    def on_mouse_motion(self, x, y, dx, dy):
        pass
        #self.addBrick(x, y)

    def on_mouse_move(self, x, y):
        print 'mouse move'

    def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers):
        x, y = self.getCoordByViewPoint(x, y)
        leftClick = buttons == 1
        rightClick = buttons == 4

        if not self.palitra.visible:
            if leftClick and self.currentSprite: self.addBrick(x, y)
            if rightClick: self.removeBrick(x, y)

    def getCoordByViewPoint(self, x, y):
        view_x, view_y = self.viewPoint
        pos_x, pos_y = self.position
        x = (x - view_x) - (pos_x - view_x)
        y = (y - view_y) - (pos_y - view_y)
        return (x, y)

    def on_mouse_press(self, x, y, buttons, modifiers):
        x, y = self.getCoordByViewPoint(x, y)
        leftClick = buttons == 1
        rightClick = buttons == 4

        if self.palitra.visible:
            if leftClick: self.selectBrick(x, y)
        else:
            if leftClick and self.currentSprite: self.addBrick(x, y)
            if rightClick: self.removeBrick(x, y)

        sleep(0.01)

        self.updateInfo(str(x) + ',' + str(y))

    def updateInfo(self, info):
        info = "press: " + str(info)
        info += ", width: " + str(self.currentWidth) + ", height: " + str(
            self.currentHeight)
        if self.currentSprite:
            info += ", currentSprite: " + str(self.currentSprite.src)
        if self.currentType: info += ", currentType: " + str(self.currentType)

        self.text.element.text = info

    def selectBrick(self, x, y):
        dx, dy = self.palitra.position
        x = x - dx
        y = y - dy

        fakeObj = self.objectProvider.getFakeObject((x, y))
        selectedSprite = self.objectProvider.checkIntersecWithRightPanel(
            fakeObj)
        if selectedSprite:
            self.currentSprite = selectedSprite
        else:
            self.currentSprite = None

    def addBrick(self, x, y):
        x = x // 32 * 32 + 16
        y = y // 32 * 32 + 16

        spriteObj = sprite.Sprite(self.currentSprite.src)
        spriteObj.src = self.currentSprite.src
        spriteObj.position = (x, y)
        spriteObj.type = self.currentType
        spriteObj.cshape = cm.AARectShape(spriteObj.position,
                                          spriteObj.width // 2,
                                          spriteObj.height // 2)

        intersec = self.objectProvider.checkIntersec(spriteObj)
        if intersec: return

        self.walls.append(spriteObj)
        self.collision.add(spriteObj)
        self.add(spriteObj)

    def removeBrick(self, x, y):
        x = x // 32 * 32 + 16
        y = y // 32 * 32 + 16

        fakeObj = self.objectProvider.getFakeObject((x, y))
        collisions = self.collision.objs_colliding(fakeObj)
        if collisions:
            for wall in self.walls:
                if wall in collisions:
                    if wall in self.walls: self.walls.remove(wall)
                    if wall in self: self.remove(wall)
                    if wall in self.collision.objs:
                        self.collision.remove_tricky(wall)
    def level_1_callback(self):
        print("第一关")
        self.game_menu = Game_menu()
        img = pyglet.image.load(address + "\skill_1.png")
        self.skill_1 = cocos.sprite.Sprite(img)
        self.skill_1.position = (100, 620)
        img = pyglet.image.load(address + "\skill_2.png")
        self.skill_2 = cocos.sprite.Sprite(img)
        self.skill_2.position = (220, 620)
        img = pyglet.image.load(address + "\skill_3.png")
        self.skill_3 = cocos.sprite.Sprite(img)
        self.skill_3.position = (340, 620)
        img = pyglet.image.load(address + "\skill_4.png")
        self.skill_4 = cocos.sprite.Sprite(img)
        self.skill_4.position = (460, 620)
        img = pyglet.image.load(address + "\skill_5.png")
        self.skill_5 = cocos.sprite.Sprite(img)
        self.skill_5.position = (580, 620)

        self.scene_3 = cocos.scene.Scene(MouseDisplay(), self.game_menu,
                                         self.skill_1, self.skill_2,
                                         self.skill_3, self.skill_4,
                                         self.skill_5)

        self.addable = False
        global scroller, speed_1, block_1, block_1_R
        speed_1 = 1
        scroller = cocos.layer.ScrollingManager()
        self.e_list = []
        self.skill = [[True, 0], [True, 0], [True, 0], [True, 0],
                      [True, 0]]  #两个数组第一个是技能1 每一个有两个参数:参数1:现在是否可以释放 参数2:冷却时间计数

        self.player_damage = 5
        self.m_layer = MainLayer()
        self.player_1 = Player_1()
        self.t_list = []
        # self.t_list.append(Teammate(animation.myE_skeleton.skeleton,animation.myE_skin.skin,"/animation/q.anim","/animation/E_attack.anim","/animation/frozen.anim",0,120,200,100,'/sound/beheat_2.wav'))
        self.t_list.append(
            Teammate(animation.diy_skeleton1.skeleton,
                     animation.diy_skin1.skin, "/animation/diy_man_walk.anim",
                     "/animation/diy_man_attack.anim",
                     "/animation/diy_frozen.anim", 0, diy_data[2], 200, 100,
                     '/sound/beheat_2.wav'))
        # self.t_list.append(Teammate(animation.myanimal_skeleton.skeleton,animation.myanimal_skin.skin,"/animation/crawl.anim","/animation/animal_attack.anim","/animation/animal_beheat.anim",0,80,200,100,'/sound/cow_beheat.wav'))
        timer = threading.Timer(10, self.add_recover)
        timer.start()
        # self.e_list.append([Enemy_1(animation.test_skeleton.skeleton,animation.test_skin.skin,"/animation/2t.anim","/animation/E_attack.anim","/animation/frozen.anim",0,100,4650,60,'/sound/beheat_2.wav'), False])   #第一个是对象 第二个是是否死亡 第三个是count(子弹击中)
        self.e_list.append([
            Enemy_1(animation.mybird_skeleton.skeleton,
                    animation.mybird_skin.skin, "/animation/turn_fly.anim",
                    "/animation/bird_attack.anim",
                    "/animation/bird_beheat.anim", 0, 100, 4650, 350,
                    '/sound/bird_beheat.wav'), False
        ])  #第一个是对象 第二个是是否死亡 第三个是count(子弹击中)
        self.coll_manager = cm.CollisionManagerBruteForce()
        self.coll_manager.add(self.player_1)
        self.coll_manager.add(self.t_list[0])
        self.coll_manager.add(self.e_list[0][0])
        self.coll_manager.add(self.player_1.bullet)
        self.coll_manager.add(self.m_layer.enemy_base)
        self.coll_manager.add(self.m_layer.my_base)
        self.fi = self.player_1

        scroller.add(self.m_layer)
        scroller.add(self.e_list[0][0])
        scroller.add(self.player_1)
        scroller.add(self.t_list[0])

        self.scene_3.schedule_interval(self.player_1.status_detect, 1 / 30)
        self.scene_3.schedule_interval(self.player_1.update_position, 1 / 80)
        self.scene_3.schedule_interval(self.m_layer.enemy_base.update_position,
                                       1 / 30)

        if not self.e_list[0][1]:
            self.scene_3.schedule_interval(self.e_list[0][0].update_position,
                                           1 / 80)
            self.scene_3.schedule_interval(self.e_list[0][0].status_detect,
                                           1 / 30)
        self.scene_3.schedule_interval(self.t_list[0].update_position, 1 / 80)
        self.scene_3.schedule_interval(self.t_list[0].status_detect, 1 / 30)
        self.scene_3.schedule_interval(self.update, 1 / 80)

        if self.double:
            self.player_2 = Player_2()
            self.coll_manager.add(self.player_2)
            scroller.add(self.player_2)
            self.scene_3.schedule_interval(self.player_2.status_detect, 1 / 30)
            self.scene_3.schedule_interval(self.player_2.update_position,
                                           1 / 80)
        self.scene_3.add(scroller, 0)

        director.replace(
            scenes.transitions.SlideInBTransition(self.scene_3, duration=1))