pyxen.Camera
Una Camera define lo que el renderizador ve en el mundo.
Se adjunta a una entidad como componente. El renderizador usa la transformación y las propiedades de la cámara para calcular las matrices de vista y proyección.
Un mundo debe contener al menos una cámara para renderizar algo.
Crear una Camera
camera = world.spawn(
x=0,
y=0,
camera=Camera()
)
O añadirla después:
camera = world.spawn()
camera.camera = Camera()
La Camera usa la transformación de la entidad
Una cámara no almacena posición por sí misma — usa la transformación de la entidad:
camera.x = 100
camera.y = 50
camera.rotation = 30
camera.scale = (2, 2)
Mover la entidad mueve la vista. Las transformaciones del padre también afectan a la cámara.
Propiedades
zoom
camera.camera.zoom = 1.0
Tipo: float
Por defecto: 1.0
| Valor | Efecto |
|---|---|
1.0 | Vista por defecto |
>1 | Acercar |
<1 | Alejar |
Ejemplo:
camera.camera.zoom = 2.0 # acercar
camera.camera.zoom = 0.5 # alejar
El zoom afecta solo a la matriz de proyección, no a la transformación de la entidad.
Ejemplo: seguir a un jugador
player = world.spawn(x=0, y=0, sprite=hero)
camera = world.spawn(camera=Camera())
def update():
camera.x = player.x
camera.y = player.y
O más simple, establecer el padre de la cámara como el jugador:
player = world.spawn(x=0, y=0, sprite=hero)
camera = world.spawn(camera=Camera(), parent=player)
Cámara alejada:
camera.camera.zoom = 0.75
Múltiples cámaras
Si existen múltiples cámaras, se usa la primera cámara activa encontrada en el mundo.