pyxen.time

엔진에서 프레임 기반 타이밍 정보에 접근합니다.

참조: 게임 루프.

time = pyxen.time

time 모듈은 다음을 제공합니다:

  • 현재 프레임 번호
  • 초당 프레임 수
  • 델타 타임
  • 경과 시간

모든 속성은 읽기 전용입니다.


속성

속성타입설명
frameint시작 이후 현재 프레임 번호
fpsint목표 초당 프레임 수
dtfloat델타 타임 (프레임당 초)
tfloat경과 시간 (초)

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 발생

엔진이 시간 상태를 내부적으로 관리합니다.

게임 루프에 대한 자세한 내용은 게임 루프를 참조하세요.