2016-07-26 7 views
0

私はthis specificレッスンを通過しました。レンダリングに関するSDLの疑問

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

最初の2つの引数は、宛先矩形(スプライトクリップ)のx位置とy位置を設定します。 なぜ彼は(SCREEN_WIDTH - currentClip - > w)/ 2、なぜ彼はSCREEN_WIDTH/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.Thanks! – w4tch0ut

+0

@ w4tch0ut素晴らしい!私は助けてくれるとうれしいです:)あなたは私の答えに投票し、受け入れられたとマークできますか?このように私はいくつかのポイントを取得し、それは私の動機を維持します。さらなるゲーム開発者との幸運! –

関連する問題