pyxen.time
엔진에서 프레임 기반 타이밍 정보에 접근합니다.
참조: 게임 루프.
time = pyxen.time
time 모듈은 다음을 제공합니다:
- 현재 프레임 번호
- 초당 프레임 수
- 델타 타임
- 경과 시간
모든 속성은 읽기 전용입니다.
속성
| 속성 | 타입 | 설명 |
|---|---|---|
frame | int | 시작 이후 현재 프레임 번호 |
fps | int | 목표 초당 프레임 수 |
dt | float | 델타 타임 (프레임당 초) |
t | float | 경과 시간 (초) |
frame
current_frame = pyxen.time.frame
0에서 시작- 매 프레임 증가
- 프레임 기반 로직에 유용
예시:
if pyxen.time.frame % 60 == 0:
print("One second passed (at 60 FPS)")
fps
fps = pyxen.time.fps
엔진의 초당 프레임 수를 반환합니다.
예시:
print("Running at", pyxen.time.fps, "FPS")
dt (델타 타임)
delta = pyxen.time.dt
다음과 동일:
1.0 / pyxen.time.fps
단일 프레임의 지속 시간을 초로 나타냅니다.
프레임 레이트 독립적 이동에 유용:
player.x += speed * pyxen.time.dt
t (경과 시간)
elapsed = pyxen.time.t
다음과 동일:
pyxen.time.frame / pyxen.time.fps
게임 시작 이후 총 시간을 나타냅니다 (초).
예시:
if pyxen.time.t > 10:
spawn_boss()
프레임 기반 vs 시간 기반 로직
프레임 기반
if pyxen.time.frame % 30 == 0:
blink()
예측 가능하고 결정적입니다.
시간 기반
player.x += velocity * pyxen.time.dt
FPS 변경에 독립적입니다.
일반적인 패턴
애니메이션 타이머
if pyxen.time.t % 1.0 < 0.5:
sprite.visible = True
else:
sprite.visible = False
쿨다운 타이머
if pyxen.time.t - last_shot_time > 0.25:
shoot()
last_shot_time = pyxen.time.t
지연 액션 (프레임 기반)
if pyxen.time.frame == 120:
start_level()
읽기 전용 안전
모든 속성은 읽기 전용입니다:
pyxen.time.frame = 10 # ValueError 발생
엔진이 시간 상태를 내부적으로 관리합니다.
게임 루프에 대한 자세한 내용은 게임 루프를 참조하세요.