スコア周りを実装

敵に耐久力を設定。また、弾にも威力を設定。雷電のようにパワーアップした場合火力がどんどん下がるようにするためだ。

とりあえずアイテムキャリアの耐久力を400に設定。自機の弾の威力を10に設定。つまり、40発与えると倒せることになる。この後パワーアップすると弾は当てやすくなるが、威力は下がるようにする。

また、倒した場合爆発させるように。といってもPureWindのそのままの爆発を単発で使っているため非常に小さくてへぼいが。あちらはαブレンドで重ね合わせをしているため見栄えがよい。一方で背景に色がある場合加算合成は扱いにくく、そのままではつかえない。とりあえず爆発表示を実装したというのが大事なのでこのままで。見た目は後かえらいくらでもかえれる。今は中身を優先して実装だ。

そして、敵を倒せるようになったため、スコアを実装。敵のベースクラスにスコアを追加。また、スコアの描画や加算等を管理するスコアクラスの作成。

http://shin.cside.com/diary/2009/1116-01.png

クラスの扱いに慣れていない場合整数型でスコアを実装してしまいがちだが、クラスに全てを任せると非常に簡単になる。たとえば加算するメソッドを作成しておけば、カンストの処理やスコアによって残機数が増えるといったことが容易に対応できる。スコアクラスしか現在のスコアはわからないように実装するべきなのだ。

今回のスクリーンショットは320*240でとってみた。ShinGL4では最新バージョンでは内部演算のサイズと表示まわりのサイズと分離しているのでらくちん。また、バグも発見した。サブテクスチャを利用した場合で、左上を基点としたスプライト描画をするとサイズが1ピクセル小さくなってしまうというもの。通常のスプライトのほうは前回なおしたため、サブテクスチャのほうの実装を直し忘れたようだ。また、余分なログが出ていたのでこれも削除する。

このあたりはすでに直したので、来週末あたりには修正したものを公開できるはず。