def main(): # Initialize the window. settings.init() director.director.init(width=settings.dimensions['x'], height=settings.dimensions['y'], do_not_scale=True, resizable=True) settings.collision_manager = cm.CollisionManagerBruteForce() # Create a layer and add a sprite to it. settings.layers['game'] = Game() settings.layers['bullets'] = BatchNode() settings.layers['walls'] = BatchNode() settings.layers['enemies'] = BatchNode() Tank1 = ETank() Tank1.do(UserTankMovingHandlers()) settings.collision_manager.add(Tank1) settings.layers['game'].add(Tank1) settings.layers['game'].add(Tank1.getGunSprite()) settings.objects['players'].append(Tank1) settings.layers['game'].add(settings.layers['bullets']) settings.layers['game'].add(settings.layers['walls']) settings.layers['game'].add(settings.layers['enemies']) enemy = KVTank() enemy.position = (800, 800) enemy.do(EnemyTankMovingHandlers()) settings.collision_manager.add(enemy) settings.objects['enemies'].append(enemy) settings.layers['enemies'].add(enemy) settings.layers['enemies'].add(enemy.getGunSprite()) for i in range(20): wall = BrickWall() wall.update_position(i*32, 500) settings.collision_manager.add(wall) settings.objects['walls'].append(wall) settings.layers['walls'].add(wall) for i in range(30): wall = BrickWall() wall.update_position(i*32 + 680, 500) settings.collision_manager.add(wall) settings.objects['walls'].append(wall) settings.layers['walls'].add(wall) for i in range(100): for j in range(50): wall = sprite.Sprite('sprites/walls/adesert_cracks_5x5.jpg') wall.position = (i*5 + 200, 800 + j*5) wall.scale = 1 wall.cshape = cm.AARectShape( wall.position, wall.width // 2, wall.height // 2 ) #settings.collision_manager.add(wall) #settings.objects['walls'].append(wall) #settings.layers['walls'].add(wall) #animation = pyglet.image.load_animation('sprites/effects/nuke-ani.gif') #anim = sprite.Sprite(animation) #anim.position = (500, 500) #settings.layers['game'].add(anim) # Create a scene and set its initial layer. main_scene = scene.Scene(settings.layers['game']) # Attach a KeyStateHandler to the keyboard object. settings.keyboard = key.KeyStateHandler() director.director.window.push_handlers(settings.keyboard) # Play the scene in the window. director.director.run(main_scene)
def set_walls(self, walls): for wall in walls: brick_wall = BrickWall() brick_wall.update_position(wall.get('position')) GameObjects.addWall(brick_wall)