2016-07-26 4 views
0

나는 this specific 수업을 들려 봤습니다.렌더링에 대한 SDL 의문점

gSpriteSheetTexture.render 
    ( 
    (SCREEN_WIDTH - currentClip->w)/2, 
    (SCREEN_HEIGHT - currentClip->h)/2, 
    currentClip 
    ); 

첫 번째 2 개의 인수는 대상 사각형 (스프라이트 클립)의 x 위치와 y 위치를 설정합니다. 왜 그가 SCREEN_WIDTH/2를 쓸 수 있었는지 이해하지 못했습니다 (SCREEN_WIDTH - currentClip -> w)/2?

void LTexture::render(int x, int y, SDL_Rect* clip) 
{ 
    SDL_Rect renderQuad = { x, y, mWidth, mHeight }; 
    if (clip != NULL) 
    { 
     renderQuad.w = clip->w; 
     renderQuad.h = clip->h; 
    } 

    SDL_RenderCopy(gRenderer, mTexture, clip, &renderQuad); 
} 

답변

1

교사는 당신이 이미지를 멋지게 화면 중앙에 있도록 그했다 :

다음은 렌더링 기능입니다.

SCREEN_WIDTH/2를 사용하면 이미지가 화면 중간에서 시작되어 전체적으로 중앙에 배치되지 않습니다. 따라서 그는 이미지 너비의 절반을 뺍니다. 그러면 이미지의 왼쪽 절반이 화면 가운데에서 왼쪽으로 그려지고 오른쪽 절반은 화면 가운데에서 오른쪽으로 그려집니다.

다음은 간단한 설명입니다. 내 대답이 당신을 도왔다면 알려주세요!

enter image description here

+0

Understood. 감사합니다. – w4tch0ut

+0

@ w4tch0ut 멋지다! 다행히 도와 드릴 수 있습니다 :) 내 대답에 투표하고 받아 들일 수 있겠습니까? 이런 식으로 제가 몇 가지 포인트를 얻었고 그것은 저에게 동기를 부여합니다. 게임 개발자들과 함께 행운을 빈다! –