def getInstance(tank):
        new_tank = None

        if tank.get('tankClass') == 'ETank':
            new_tank = ETank()

        if tank.get('tankClass') == 'KVTank':
            new_tank = KVTank()

        new_tank.position = tank.get('position')
        new_tank.id = tank.get('id')
        return new_tank
Example #2
0
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)