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
다중 카메라
여러 카메라가 존재하면, 월드에서 찾은 첫 번째 활성 카메라가 사용됩니다.