pyxen.Camera

Camera 定义了渲染器在世界中看到的内容。

它作为组件附加到实体上。渲染器使用摄像机的变换和属性来计算视图和投影矩阵。

世界中必须至少包含一个摄像机才能渲染任何内容。


创建摄像机

camera = world.spawn(
    x=0,
    y=0,
    camera=Camera()
)

或稍后添加:

camera = world.spawn()
camera.camera = Camera()

摄像机使用实体变换

摄像机不存储自己的位置——它使用实体的变换:

camera.x = 100
camera.y = 50
camera.rotation = 30
camera.scale = (2, 2)

移动实体就移动了视图。父节点变换也会影响摄像机。


属性

zoom

camera.camera.zoom = 1.0

类型: float 默认值: 1.0

效果
1.0默认视图
>1放大
<1缩小

示例:

camera.camera.zoom = 2.0  # zoom in
camera.camera.zoom = 0.5  # zoom out

缩放仅影响投影矩阵,不影响实体变换。


示例:跟随玩家

player = world.spawn(x=0, y=0, sprite=hero)

camera = world.spawn(camera=Camera())

def update():
    camera.x = player.x
    camera.y = player.y

或更简单,将摄像机的父节点设为玩家:

player = world.spawn(x=0, y=0, sprite=hero)
camera = world.spawn(camera=Camera(), parent=player)

缩小的摄像机:

camera.camera.zoom = 0.75

多个摄像机

如果存在多个摄像机,使用世界中找到的第一个活跃摄像机。