こんばんは、まきです。
今夜は家族の帰りが遅いので
晩ご飯は一人でする予定なのですが
何を食べようか考え中です。
何か良い献立があったら教えてください。
さて、今回は、
前回のVitaプログラム入門の記事で実装した
スプライトを作って表示する。の解説を行います。
まず
TextureM tex = new TextureM( "/Application/CharImg.png" );
ですが、「tex」という名前の「TextureMオブジェクトを作って
それに「CharImg.png」という画像を読み込む処理です。
画像ファイルを見ていただければ分かると思いますが
いろいろなキャラクタが並べられている画像ファイルになっています。
ゲームのキャラクター表示のデータとしては一般的な方法です。
次に
SpriteM jiki = new SpriteM( 64, 64, 0, 0, tex );
ですが、「jiki」という名前の「SpriteMオブジェクト」を作っています。
先ほどのtexオブジェクトから、一部分を切り出してスプライトとしています。
スプライトについては、スプライトの基礎知識。で説明した通りで
ゲームの画面上を自由に動き回るキャラクターのことです。
= new SpriteM( 64, 64, 0, 0, tex );
と続いていますが、最初の64はスプライトの幅、次の64は高さを示す値で
ピクセル単位で指定します。
画像ファイルの中の戦闘機の絵は、幅・高さとも64ピクセルで描かれています。
続く0,0は、この画像ファイルから切り出す64×64の左上を
示すX座標とY座標です。
たとえば、これを64,0に変えてやるとUFOの絵柄が出てきますし
128,64にすれば、中央が水色で周りが薄紫のダイヤの柄が出てきます。
ちょっと難しいようですが、慣れてしまえば何てこと無いので
いろいろな数値を入れながら、また画像のピクセル数を確認しながら
試してみてください。
次の
jiki.Pos.x = 480;
jiki.Pos.y = 272;
は、出来上がった「jiki」をどこに表示するかを指定するものです。
PS Vitaの画面は、幅960ピクセル、高さ544ピクセルなので
それぞれを2で割った数値を入れてますから
中央に表示されるというわけですね。
jiki.Pos.x = 32;
jiki.Pos.y = 32;
としてやれば、左上にぴったりくっついた状態で表示されます。
キャラクタの幅が64ピクセルなので、この座標指定は
キャラクタの中央を指すことから、32を指定します。
最後に
jiki.Render();
ですが、「jiki」を実際に画面に表示するためのコードです。
スプライトは作っただけでは表示されず
表示するためのコードを書く必要があります。
実は、この表示するためのコードは、
ループ処理の中の最後の方に書いているため
何度も何度も描画処理を行っています。
正確な数値は分かりませんが
およそ1/60秒ごとに1ループするので
1秒間に60回描画していることになります。
ためしに「// 判定等処理」の下に次のコードを書いてビルド・実行してみてください。
jiki.Pos.x += 1;
戦闘機が右に移動しましたよね。
これは、1/60ごとに戦闘機(jiki)の表示するX座標を
1ピクセルずつ加算させた結果です。
ちなみに、1を2や4に変えれば移動する速度が速くなります。
次回は、この戦闘機を
十字キーで動かす処理について解説したいと思います。