-
Notifications
You must be signed in to change notification settings - Fork 1
02_05.FramesAndTimers
jdeokkim edited this page May 6, 2022
·
2 revisions
우리가 게임을 만들다 보면 스킬의 재사용 대기 시간 (cooldown) 등을 구현하기 위해 시간을 측정해야 할 때가 있는데, 이럴 때 사용할 수 있는 것이 바로 raylib의 core
모듈 (rcore.c
)이 제공하는 시간 관련 함수이다. 이 중에 앞으로 자주 사용하게 될 함수는 바로 GetFrameTime()
인데, 이 함수는 게임이 가장 최근에 그린 프레임을 그리는 데에 걸렸던 시간을 반환하는 함수이다. 이 시간은 게임의 FPS (Frames Per Second)에 따라 달라질 수 있는데, 만약 우리가 만든 게임이 평균 60 FPS로 실행이 되고 있다면 GetFrameTime()
은 약 1/60초를 반환할 것이다.
// 가장 최근에 그린 프레임을 그리는 데에 걸렸던 시간 (단위: 초)을 반환한다.
RLAPI float GetFrameTime(void);
// `InitWindow()` 호출 이후 지금까지 경과한 시간 (단위: 초)을 반환한다.
RLAPI double GetTime(void);
아래 예제 프로그램을 실행하면, 콘솔 창에 지금까지 흐른 시간이 출력되는 것을 확인할 수 있다.
#include "raylib.h"
#define TARGET_FPS 60
#define SCREEN_WIDTH 256
#define SCREEN_HEIGHT 256
int main(void) {
InitWindow(SCREEN_WIDTH, SCREEN_HEIGHT, "6pm-crew/play");
SetTargetFPS(TARGET_FPS);
// 지금까지 흐른 시간을 이 변수에 저장한다.
float elapsed_time = 0.0f;
while (!WindowShouldClose()) {
BeginDrawing();
ClearBackground(BLACK);
// 이 부분에 주목하자!
elapsed_time += GetFrameTime();
TraceLog(LOG_INFO, "ELAPSED_TIME: %.2fs...", elapsed_time);
EndDrawing();
}
CloseWindow();
return 0;
}
- 오픈 소스 소프트웨어란?
- Git과 버전 관리 시스템
- GitHub를 이용한 저장소 호스팅
- 프로젝트의 기여 및 관리
- 라이브러리 소개
- 개발 환경 구축
- 첫 번째 프로그램
- 게임 창과 커서 관리
- 프레임, 시간과 타이머
- 픽셀, 선분과 기본 도형
- 마우스와 키보드 입력
- 벡터 글꼴과 비트맵 글꼴
- 이미지와 텍스처의 사용
- 카메라와 렌더 텍스처
- 충돌 감지와 충돌 해결
- 효과음과 음악 재생
- 그 외 유용한 함수