SDL2のチュートリアルをやってみる BGP2.0 - その11 スプライトシートを読み込み、クリップして描画する

      2017/10/11





Lazy Foo' Productions にて掲載されているチュートリアルを進めていくシリーズ その11です。
今回は、[Lesson11 Clip Rendering and Sprite Sheets]です。

複数の画像が描かれているスプライトシートを1つのテクスチャに読込み保持します。描画時は必要な部分をクリップしてレンダリングします。

本家サイトへは以下のリンクからどうぞ。チュートリアルで説明されているソースコードをダウンロードできます。

Lazy Foo' Productions Tutorials 11 Clip Rendering and Sprite Sheets

要点

気になったところ、覚えておきたいことなどのメモ。

  • 読み込む画像は4分割されたものである
  • 4分割されている画像を切り取り描画する
  • 描画時に座標を指定している
    左上の座標 x = 0, y = 0
    右上の座標 x = 画面の幅 - 右上図形の幅, y = 0
    左下の座標 x = 0, y = 画面の高さ - 左下図形の高さ
    右下の座標 x = 画面の幅 - 右下図形の幅, y = 画面の高さ - 右下図形の高さ

自分で書いてみる

より理解を深めるために、サンプルを参考に以下の仕様でプログラムを作成します。

  1. 4分割された図形が描かれているpng形式のファイルを用意する
  2. 図形ファイルを読込みウィンドウに描画する
  3. 4分割した図形を四隅に詰めて描画する
    • サンプルとは別方向に描画する
    • 左上の図形は右下角へ、右上の図形は左下角へ、左下の図形は右上角へ、右下の図形は左上角へ
  4. ESCの入力でプログラムは終了する
  5. グローバル変数は使用しないこと
  6. クラスは別ファイルに宣言、定義すること
  7. マジックナンバーは排除、初期化時に外から設定できるようにする

マジックナンバーとは?
プログラムのソースコード中に書かれた具体的な数値である
via マジックナンバー (プログラム) wiki

 - BGP2.0, C++, SDL2, チュートリアル