본문 바로가기

메타버스 1기

게임 실행 루프, 백 버퍼 만들기

-주의-

틀린부분 많을 수 있음

 

Main.c

app_init 의 값이 false 일때 문구 출력 후 종료 -> app_init에는 프로그램의 초기값들이 들어있다

if 문에 걸리지 않았다면(true) app_run의 값을 반환 -> app_run에는 프로그램을 가동시키는 내용이 들어있다

app_init과 app_run은 app.h와 app.c에 정의되어있다

main은 짧게 구성하는것이 좋음.

 

 

app.h 

헤더파일 사용 이유
헤더파일에 선언 해놓으면 매번 재 선언 할 필요없이 헤더파일만 부르면 되기 때문이다

 

app.c

app_init에서 초기값으로 renderer_init이 false면 app_init 또한 false가 반환되게끔 함

-> main에 false가 반환되어 프로그램이 정상적으로 실행되지 않게된다

app_run에 게임 실행 루프를 적어준다

 

게임 실행 루프란?

break(return 0)가 될 때까지 입력처리 -> 게임 업데이트 -> 게임 출력(실행)이 무한 반복되는 것

얼마나 반복될 지 모르기때문에 while문 사용

현재 app.c에서의 입력처리는 app_input으로

업데이트는 app_update로

출력은 app_render로 설정

 

 

renderer.h

백버퍼를 사용하기위해 필요한 함수들 선언

init 초기값

cleanup 데이터 정리

flip 백버퍼가 서로 돌아가게끔

clear 콘솔창의 내용들을 지움

drawtext 텍스트 출력

 

renderer.c

배열로 screens[0]과 screens[1]을 받아서 두개가 일치하지 않을때 flip 하게한다

cleanup은 백버퍼가 창을 계속 만드는 형식이기때문에 사용 후 데이터를 정리해주어야 한다

여긴 너무 어렵다ㅜㅜ