사용자 도구

사이트 도구


raylib:flappy_bird_게임에_그림_입히기
flappy bird 게임에 그림 입히기

문서의 이전 판입니다!


  

스타팅 파일

플레이어 텍스쳐 입히기

사실 텍스쳐드로잉은 이미 메뉴 만들기에서 한번 해본 적 있다. 메뉴 만들기에 구현해 놓은 코드들을 bird 클래스에 가져오면 된다.

1. bird.h

private 선언 부분에 다음과 같이 텍스쳐를 선언하게 만들었다.

    // 텍스처 로드하기 
    // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
    Texture2D birdImage;        // Texture loading;  
    float halfLengthH = 18; 
    float halfLengthW = 25; 

애셋 폴더에 있는 새의 이미지가 가로 크기는 50픽셀이고 세로크기는 35이다. 따라서 가로를 반으로 나눈 값은 25로 했고, 세로를 반으로 나눈 값은 18로 했다.

이미 메뉴파일에서도 birdImage란 이름으로 선언했던 적이 있다. 따라서 컴파일을 하면 오류가 날 것이다. 메뉴파일과 다른 이름으로 Texture2D를 선언해도 되지만 나는 메뉴 파일에서는 기존에 쓰던 텍스쳐를 지우리고 했으므로 똑같은 이름을 사용했다. 만약 메뉴파일을 수정하기 싫은 사람은 birdImage가 아니라 다른 이름으로 선언해야 한다.

2. bird.cpp

가. Init()함수

다음과 같이 텍스쳐를 불러온다.

void Bird::Init()
{
    // 최초의 포지션 정하기
    pos = {60, float(GetScreenHeight()) / 2} ;
// 그림으로 넣기
    birdImage = LoadTexture("Assets/birddrawing.png");        // Texture loading
}

나. Draw()함수

다음과 같이 DrawTexture 함수를 불러오면 된다. DrawTexture는 현재 포지션인 x와 y값만 가져오면 된다.

// 플레이어 그리기 
void Bird::Draw()
{
    if (isInvincible)
    {
       //  DrawRectangle(pos.x - halfLength, pos.y - halfLength, halfLength * 2, halfLength * 2, GRAY);  // 플레이어가 무적일 떄 
        DrawTexture(birdImage, int(pos.x), int(pos.y), GRAY);
    }else
    {
       // DrawRectangle(pos.x - halfLengthW, pos.y - halfLengthH, halfLengthW * 2, halfLengthH * 2, DARKGREEN); // 평상시
       DrawTexture(birdImage, int(pos.x), int(pos.y), WHITE); 
    }
}

참고로, DrawTexture의 시작점이 어디인지 지금 현재로서는 알지 못한다. x와 y의 좌표값을 정중앙으로 하는지, 아니면 왼쪽 위에서부터 시작하는지 알지 못한다. 일단 현재 코드는 정중앙이라고 가정하고 만들었다. 향후에 DrawTexure 부분을 뜯어보아야 겠다.

다. 텍스쳐 언로드

객체가 소멸될 때 텍스쳐도 언로드 하는 것을 잊지 말자

Bird::~Bird()
{
    UnloadTexture(birdImage);       // Texture unloading
}

장애물 그림 입히기

1. obstacle.h

똑같이 Texture2D를 priavte에 선언한다.

     // 텍스처 로드하기 
    // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
    Texture2D UpPipeImage;        // Texture loading;  
    Texture2D DownPipeImage;        // Texture loading;  
로그인하면 댓글을 남길 수 있습니다.

raylib/flappy_bird_게임에_그림_입히기.1697374268.txt.gz · 마지막으로 수정됨: 2023/10/15 21:51 (바깥 편집)