超かんたんPSP自作ソフト作成方法 01

[テンプレートの解説:スプライトの作成と描画]

今回は、PSPの画面にスプライトを表示させる部分の解説をします。
スプライトとは、簡単に言うと2Dのゲームに登場する絵の描かれた矩形のことです。
PSPはスプライトの機能を持っていないので、実装には板ポリゴンを画面に対して水平に貼り付けているだけなので厳密にはスプライトではないのですが、ゲーム開発の世界では古くから2Dキャラクタの事をスプライトと呼んでいるので、3Dと区別するためにスプライトと呼ぶことにします。


ichicatPSPdevTemplateをダウンロード
ダウンロードして解凍後、「ichicatPSPdevTemplate.sln」をダブルクリックしてMicrosoft Visual Studioを起動しましょう。

画面の左側にソリューションエクスプローラがあるので、その中のソースファイルフォルダ内の「Entry.cpp」をダブルクリックして編集可能状態にします。
(ソリューションエクスプローラが画面上にない場合は、表示メニューのソリューションエクスプローラを選びます。)

ゲームのプログラミングは、基本的にこのファイルにのみ行います。

45行目を見てください。
ここでは、ゲームで使用する変数やオブジェクトの宣言、その他初期化情報を記述します。
59行目までで行います。もちろん行を増やしてもかまいません。

48行目では、「MyCharSpr」という名前のスプライトオブジェクトを作っています。
「SpriteM」に続けて作りたいスプライトオブジェクトの名前を入れてやります。
SpriteM MyCharSpr;
(int形のnumを作るように、SpriteM型のMyCharSprを作っているイメージです。)

49行目では、ここで作った「MyCharSpr」を初期化しています。
ここでいう初期化とは、どの絵をどのサイズで作るかといったもので、CharImg配列に登録されている画像の一番左上(X:0,Y:0)から幅64、高さ64のサイズの絵の部分をスプライトとして切り出しています。
MyCharSpr.Init( 64, 64, 0, 0, CharImg, TEXSIZE );

51・52行目では、「MyCharSpr」の初期座標(ゲームが起動した直後の位置)を指定しています。
MyCharSpr.Pos.x = 240;
MyCharSpr.Pos.y = 80;

49〜52行目まで、すべて「MyCharSpr.」から始まってるのがわかりますが、これは「MyCharSpr」に対して処理をするという意味で、C言語ではなくC++言語での書き方になります。

続いて、96行目を見てください。ここは描画処理になります。
描画に関する記述は、98行目〜104行目に書く必要があります。
もちろん改行してもいいですが、「ScreenStart();」〜「fbp0 = ScreenRender();」の間に書く必要があります。

実際の描画処理は、101行目になります。
これを書けば、スプライト「MyCharSpr」が指定された場所に表示されるというわけです。
MyCharSpr.Render();



[練習その1:スプライトの表示位置の変更]
50・51行目で指定されている数値を変更してみましょう。
Xには0〜480、Yには0〜272までの好きな数値を指定してください。 内容を変更したら「F7」キーを押してビルド(メイク)してやります。
解凍したフォルダの中の「Source」の中にある「EBOOT.PBP」を、PSPのメモリスティックのPSP→GAME→任意のフォルダ名にコピーしてPSPで起動してみましょう。
狙った場所にスプライトが表示されれば成功です!

[練習その2:スプライトの絵とサイズの変更]
41行目の数値を変更してみましょう。
MyCharSpr.Init( 64, 64, 0, 0, CharImg, TEXSIZE );
                ↓
MyCharSpr.Init( 64, 64, 64, 0, CharImg, TEXSIZE );

練習1と同じようにビルドしてPSPにファイルをコピーして実行してみましょう。
スプライトの画像が違うものに変わったら成功です!
また、解凍したフォルダの中の「Texture」に「CharImg.bmp」があります。
これを見ながら、上記4つの数値をいろいろ変更してどの様に変化するか確認してみましょう。


次回は、スプライトをパッドで操作して移動させる解説をする予定です。