pyxen.Camera

Camera는 렌더러가 월드에서 보는 것을 정의합니다.

엔티티에 컴포넌트로 첨부됩니다. 렌더러는 카메라의 트랜스폼과 속성을 사용하여 뷰 및 프로젝션 행렬을 계산합니다.

월드에 렌더링할 무언가가 있으려면 최소 하나의 카메라가 있어야 합니다.


Camera 생성

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

또는 나중에 추가:

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

Camera는 엔티티 Transform을 사용

카메라는 자체적으로 위치를 저장하지 않습니다 — 엔티티의 트랜스폼을 사용합니다:

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  # 확대
camera.camera.zoom = 0.5  # 축소

줌은 프로젝션 행렬에만 영향을 주며, 엔티티 트랜스폼에는 영향을 주지 않습니다.


예시: 플레이어 따라가기

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

다중 카메라

여러 카메라가 존재하면, 월드에서 찾은 첫 번째 활성 카메라가 사용됩니다.