OpenGL로 2D 플랫폼 게임만들기 - 1. 기본 구조

장명훈·2023년 6월 3일
0

OpenGL 2D platform

목록 보기
1/4
post-thumbnail

OpenGL

시작하기 앞서 나는 glut와 freeglut를 포함시켰다.
먼저 전체적인 구조는 다음과 같다.

파일 구성

main.cpp

Include.h

Stage.h
Stage.cpp

Sprite.h
Sprite.cpp

Vector2D.h
Vector2D.cpp

Color4f.h
Color4f.cpp

순서

먼저 sprite를 화면에 띄우는 것부터 해야 한다. 그걸 하기 위해서는 vector와 color 클래스를 만들었다. 두 클래스는 위치와 속도, 색상을 결정하는 중요한 기본 클래스이다.

  • vector
    • Vector2f - 벡터 클래스
    • Color4f - 색상 클래스

이렇게 기본 클래스들을 만들고 sprite클래스를 만든다. 근데 지금까지는 화면에 띄우고 그런건 없다. 그냥 기반을 만든 것뿐이다. 굳이 띄울라면 init()함수를 main에서 호출해서 띄워보는거 정도이다.

  • Sprite
    • mPos(위치), mVelo(속도), mSize(크기), mColor(색상), m_Texid(텍스쳐)
    • void init();
    • void Release();
    • void Render();
    • void loadTexture();
    • void DrawBox()

이 Sprite를 관리할 Stage클래스를 만든다. Stage 클래스는 여러 Sprite를 화면에 표시하고 관리하는 클래스이다.

  • Stage
    • Sprite mSprite; 띄울 객체 생성
    • void init();
    • void Release();
    • void Render();
    • void FrameMove();

Include는 main에 필요한 각종 헤더들을 모아놓은 헤더파일이다. 구요 기능으로는 창크기 정보를 가진 구조체ExternStruct와 가상키입력을 받는 KeyDown( int vk ), KeyUp( int vk )가 있다.

  • Include
    • ExternStruct - 창크기
    • KeyDown( int vk ), KeyUp( int vk ) - 키보드 입력

그리고 main에 이것들을 그린다.

  • main
    • glutDisplayFunc(display); - 화면 출력
    • glutIdleFunc(onIdle);

실행화면

참고 자료
https://sungcheol-kim.gitbook.io/glut-tutorials/

0개의 댓글