Exemplo n.º 1
0
    def __init__(self, uid: str, width, height, world_width: int,
                 world_height: int, start_pos):
        super().__init__(uid, width, height)

        keyl = runners.KeyListener()
        # adding pause button
        keyl.add_key(key=32, func=func.toggle_pause)
        # restart on F10
        keyl.add_key(key=299, func=func.restart)
        self.add_runner(keyl)

        # self.keyl.addKey(key=264, func = checkWarp)

        main = Entity(tag='main')
        #main.camera = camera.OrthoCamera(world_width=world_width * vars.tile_size,
        #                                 world_height=world_height * vars.tile_size,
        #                                 cam_width=width, cam_height=height, viewport=[0, 0, width, height],
        #                                 tag='maincam')
        main.camera = camera.PerspectiveCamera(viewport=[0, 0, width, height],
                                               tag='maincam')
        main.camera.pos = (0, 1, 0)
        self.main = main
        self.add(main)

        # create the collision engine
        ce = runners.CollisionEngine(85, 85)
        self.add_runner(ce)

        self.add_runner(runners.Scheduler())

        self.dw = runners.DynamicWorld(256, 256, 'maincam')
        self.add_runner(self.dw)

        diag = Entity(tag='diag')
        diag.camera = camera.OrthoCamera(world_width=width,
                                         world_height=height,
                                         cam_width=width,
                                         cam_height=height,
                                         viewport=[0, 0, width, height],
                                         tag='diagcam')

        fps_count = Text('main',
                         8,
                         '0', [255, 255, 255, 255],
                         align=TextAlignment.top_left,
                         tag='fps',
                         pos=(0, 256, 2))
        fps_count.add_component(comp.FPSCounter())
        diag.add(fps_count)

        self.add(diag)
        e = Entity()
        e.add_component(Road())
        e.add_component(comp.KeyInput())
        main.add(e)
Exemplo n.º 2
0
    def create_observer(self):
        """Create and configure the special "observer" object
		(which is just a camera). Needed for deictic relations as
		well as several other aspects requiring the POV concept,
		e.g., taking screenshots.
		"""

        lamp = bpy.data.lights.new(name="Lamp", type='POINT')
        lamp.energy = 30

        if bpy.data.objects.get("Lamp") is not None:
            lamp_obj = bpy.data.objects["Lamp"]
        else:
            lamp_obj = bpy.data.objects.new("Lamp", lamp)
            bpy.context.collection.objects.link(lamp_obj)

        cam = bpy.data.cameras.new("Camera")
        if bpy.data.objects.get("Camera") is not None:
            cam_ob = bpy.data.objects["Camera"]
        else:
            cam_ob = bpy.data.objects.new("Camera", cam)
            bpy.context.collection.objects.link(cam_ob)

        #lamp_obj.location = (-20, 0, 10)
        #cam_ob.location = (-15.5, 0, 7)
        lamp_obj.location = (0, -20, 10)
        cam_ob.location = (0, -9, 3)
        cam_ob.rotation_mode = 'XYZ'
        cam_ob.rotation_euler = (1.1, 0, -1.57)
        bpy.data.cameras['Camera'].lens = 20

        bpy.context.scene.camera = self.scene.objects["Camera"]

        if bpy.data.objects.get("Observer") is None:
            mesh = bpy.data.meshes.new("Observer")
            bm = bmesh.new()
            bm.verts.new(cam_ob.location)
            bm.to_mesh(mesh)
            observer = bpy.data.objects.new("Observer", mesh)
            bpy.context.collection.objects.link(observer)
            #self.scene.objects.link(observer)
            bm.free()
            #self.scene.update()
        else:
            observer = bpy.data.objects["Observer"]

        dg = bpy.context.evaluated_depsgraph_get()
        dg.update()

        observer_entity = Entity(observer)
        observer_entity.camera = cam_ob
        observer_entity.location = np.array(cam_ob.location)
        observer_entity.up = np.array([0, 1, 3])
        observer_entity.right = np.array([1, 0, 0])
        observer_entity.set_frontal(observer_entity.location)
        return observer_entity
Exemplo n.º 3
0
def get_observer():
    lamp = bpy.data.lamps.new("Lamp", type = 'POINT')
    lamp.energy = 30
    cam = bpy.data.cameras.new("Camera")

    if bpy.data.objects.get("Lamp") is not None:
        lamp_obj = bpy.data.objects["Lamp"]
    else:
        lamp_obj = bpy.data.objects.new("Lamp", lamp)
        scene.objects.link(lamp_obj)
    if bpy.data.objects.get("Camera") is not None:
        cam_ob = bpy.data.objects["Camera"]
    else:
        cam_ob = bpy.data.objects.new("Camera", cam)
        scene.objects.link(cam_ob)    

    lamp_obj.location = (-20, 0, 10)
    cam_ob.location = (-15.5, 0, 7)
    cam_ob.rotation_mode = 'XYZ'
    cam_ob.rotation_euler = (1.1, 0, -1.57)
    bpy.data.cameras['Camera'].lens = 20
    
    bpy.context.scene.camera = scene.objects["Camera"]


    if bpy.data.objects.get("Observer") is None:
        mesh = bpy.data.meshes.new("Observer")
        bm = bmesh.new()
        bm.verts.new(cam_ob.location)
        bm.to_mesh(mesh)
        observer = bpy.data.objects.new("Observer", mesh)    
        scene.objects.link(observer)
        bm.free()
        scene.update()
    else: 
        observer = bpy.data.objects["Observer"]            
    observer_entity = Entity(observer)
    observer_entity.camera = cam_ob
    return observer_entity
Exemplo n.º 4
0
    def __init__(self, uid: str, width, height, world_width: int,
                 world_height: int, start_pos):
        super().__init__(uid, width, height)

        keyl = runners.KeyListener()
        # adding pause button
        keyl.add_key(key=32, func=func.toggle_pause)
        # restart on F10
        keyl.add_key(key=299, func=func.restart)
        self.add_runner(keyl)

        # self.keyl.addKey(key=264, func = checkWarp)

        main = Entity(tag='main')
        main.camera = camera.OrthoCamera(
            world_width=world_width * vars.tile_size,
            world_height=world_height * vars.tile_size,
            cam_width=width,
            cam_height=height,
            viewport=[0, 0, width, height],
            tag='maincam')
        self.main = main
        self.add(main)

        # create the collision engine
        ce = runners.CollisionEngine(80, 80)
        ce.add_response(
            vars.tags.player, vars.tags.brick_sensor,
            runners.CollisionResponse(on_enter=func.brick_response))
        ce.add_response(
            vars.tags.player, vars.tags.bonus_brick_sensor,
            runners.CollisionResponse(on_enter=func.bonus_brick_response))
        ce.add_response(
            vars.tags.player, vars.tags.mushroom,
            runners.CollisionResponse(on_enter=func.mushroom_response))
        ce.add_response(
            vars.tags.player, vars.tags.warp,
            runners.CollisionResponse(on_enter=func.on_warp_enter,
                                      on_leave=func.on_warp_exit))
        ce.add_response(
            vars.tags.player, vars.tags.hotspot,
            runners.CollisionResponse(on_enter=func.on_hotspot_enter))
        ce.add_response(vars.tags.player, vars.tags.coin,
                        runners.CollisionResponse(on_enter=func.coin_response))
        ce.add_response(
            vars.tags.player, vars.tags.goomba,
            runners.CollisionResponse(on_enter=func.goomba_response))
        ce.add_response(
            vars.tags.player, vars.tags.koopa,
            runners.CollisionResponse(on_enter=func.koopa_response))
        ce.add_response(
            vars.tags.player, vars.tags.plant,
            runners.CollisionResponse(on_enter=func.plant_response))
        ce.add_response(vars.tags.player, vars.tags.spawn,
                        runners.CollisionResponse(on_enter=func.on_spawn))
        ce.add_response(
            vars.tags.player, vars.tags.key,
            runners.CollisionResponse(on_enter=func.on_collect_item))
        ce.add_response(
            vars.tags.player, vars.tags.generic_hotspot,
            runners.CollisionResponse(on_enter=func.on_enter_hotspot,
                                      on_leave=func.on_leave_hotspot))

        ce.add_response(vars.tags.goomba, vars.tags.player_fire,
                        runners.CollisionResponse(on_enter=func.fire_hits_foe))
        self.add_runner(ce)

        self.add_runner(runners.Scheduler())

        self.dw = runners.DynamicWorld(256, 256, 'maincam')
        self.add_runner(self.dw)

        diag = Entity(tag='diag')
        diag.camera = camera.OrthoCamera(world_width=width,
                                         world_height=height,
                                         cam_width=width,
                                         cam_height=height,
                                         viewport=[0, 0, width, height],
                                         tag='diagcam')
        diag.add(
            Text('main',
                 8,
                 monkey.engine.read('$mario'), [255, 255, 255, 255],
                 TextAlignment.top_left,
                 pos=(24, 248, 2)))
        diag.add(
            Text('main',
                 8,
                 '{:06d}'.format(vars.score), [255, 255, 255, 255],
                 TextAlignment.top_left,
                 tag='score_label',
                 pos=(24, 240, 2)))
        diag.add(
            Text('main',
                 8,
                 monkey.engine.read('$world'), [255, 255, 255, 255],
                 TextAlignment.top_left,
                 pos=(144, 248, 2)))
        diag.add(
            Text('main',
                 8,
                 uid, [255, 255, 255, 255],
                 TextAlignment.top,
                 pos=(164, 240, 2)))
        diag.add(
            Text('main',
                 8,
                 monkey.engine.read('$time'), [255, 255, 255, 255],
                 TextAlignment.top_right,
                 pos=(232, 248, 2)))
        diag.add(
            Text('main',
                 8,
                 str(vars.time), [255, 255, 255, 255],
                 TextAlignment.top_right,
                 tag='score_label',
                 pos=(232, 240, 2)))
        diag.add(Sprite(model='sprites/01/coin_counter', pos=(96, 232, 2)))
        diag.add(Text('main', 8, 'x', [255, 255, 255, 255], pos=(108, 240, 2)))
        diag.add(
            Text('main',
                 8,
                 '{:02d}'.format(vars.coins), [255, 255, 255, 255],
                 TextAlignment.top_left,
                 tag='coin_label',
                 pos=(116, 240, 2)))
        fps_count = Text('main',
                         8,
                         '0', [255, 255, 255, 255],
                         align=TextAlignment.top_left,
                         tag='fps',
                         pos=(0, 256, 2))
        fps_count.add_component(comp.FPSCounter())
        diag.add(fps_count)

        self.add(diag)

        # add player
        mario = monkey.engine.get_item_factory('player')()(start_pos[0],
                                                           start_pos[1], 0)
        #mario = build.makePlayer(vars.stateInfo[vars.state], startPos[0], startPos[1])
        main.add(mario)
Exemplo n.º 5
0
    def __init__(self, uid: str, world_bounds):
        super().__init__(uid, 384, 224)
        #width =
        #height = 240
        device_width = monkey.engine.device_size[0]
        device_height = monkey.engine.device_size[1]

        keyl = runners.KeyListener()
        # adding pause button
        #keyl.add_key(key=32, func=func.toggle_pause)
        # restart on F10
        keyl.add_key(key=299, func=func.restart)
        self.add_runner(keyl)

        main = Entity(tag='main')
        cam = camera.Camera25(5216, 736, device_width, device_height,
                              [0, 0, device_width, device_height])
        #cam = camera.PerspectiveCamera(viewport=[0, 0, 320, 240])
        cam.tag = 'maincam'
        cam.pos = (5, 0, 1)
        #cam.bounds = world_bounds
        #cam.boundsz = [-100, 22]
        main.camera = cam

        self.main = main
        self.add(main)

        ce = runners.CollisionEngine3D(80, 80, 80)  # this will be a 3d engine
        ce.add_response(
            vars.tags.player, vars.tags.ladder,
            runners.CollisionResponse(on_enter=func.on_enter_ladder_area,
                                      on_leave=func.on_leave_ladder_area))
        ce.add_response(vars.tags.player, vars.tags.spawn,
                        runners.CollisionResponse(on_enter=func.spawn))

        #ce.add_response(vars.tags.foe_attack, vars.tags.player, runners.CollisionResponse(on_enter=func.foe_hits_player))
        ce.add_response(
            vars.tags.player_attack, vars.tags.foe,
            runners.CollisionResponse(on_enter=func.player_hits_foe))
        ce.add_response(
            vars.tags.foe_attack, vars.tags.player,
            runners.CollisionResponse(on_enter=func.foe_hits_player))
        # ce.add_response(vars.tags.player, vars.tags.foe, runners.CollisionResponse(on_enter=func.stomp_enemy))
        # ce.add_response(vars.tags.player, vars.tags.bonus, runners.CollisionResponse(on_enter=func.collect_bonus))
        # ce.add_response(vars.tags.player_attack, vars.tags.foe, runners.CollisionResponse(on_enter=func.player_hits_foe))
        # ce.add_response(vars.tags.player_attack, vars.tags.platform_destructible, runners.CollisionResponse(on_enter=func.player_hits_block))
        # ce.add_response(vars.tags.gib, vars.tags.platform, runners.CollisionResponse(on_enter=func.gib_lands))
        # ce.add_response(vars.tags.gib, vars.tags.platform_destructible, runners.CollisionResponse(on_enter=func.gib_lands))
        #
        # ce.add_response(vars.tags.fire, vars.tags.foe, runners.CollisionResponse(on_enter=func.fire_hits_foe))
        # ce.add_response(vars.tags.crusher, vars.tags.player, runners.CollisionResponse(on_enter=func.on_crusher_hit))

        self.add_runner(ce)
        self.add_runner(runners.Scheduler())

        diag = Entity(tag='diag')
        fsize = 8
        pad = 3 * fsize
        w = 320
        h = 240
        diag.camera = camera.OrthoCamera(world_width=w,
                                         world_height=h,
                                         cam_width=w,
                                         cam_height=h,
                                         viewport=[0, 0, w, h],
                                         tag='diagcam')
        #diag.add(Text('main', fsize, monkey.engine.read('$energy'), [255, 255, 255, 255], TextAlignment.top_left, pos=(pad, h-fsize, 2)))
        #diag.add(Text('main', fsize, str(vars.energy), [255, 255, 255, 255], TextAlignment.top_left, tag='energy_label', pos=(pad, h-fsize*2, 2)))
        # diag.add(Text('main', fsize, monkey.engine.read('$world'), [255, 255, 255, 255], TextAlignment.top_left, pos=(fsize*10, height-fsize, 2)))
        # diag.add(Text('main', fsize, uid, [255, 255, 255, 255], TextAlignment.top_left, pos=(fsize*10, height-2*fsize, 2)))
        #diag.add(Text('main', fsize, monkey.engine.read('$height'), [255, 255, 255, 255], TextAlignment.top_right, pos=(width-pad, height-fsize, 2)))
        #diag.add(Text('main', fsize, str(vars.height), [255, 255, 255, 255], TextAlignment.top_right, tag='height_label', pos=(width-pad, height-fsize*2, 2)))
        # fps_count = Text('main', fsize, '0', [255, 255, 255, 255], align=TextAlignment.top_left, tag='fps', pos=(0, height, 2))
        # fps_count.add_component(comp.FPSCounter())
        # diag.add(fps_count)

        self.add(diag)