リフト用コードをマージ中 その8

コインブロックとアイテムボックスを再実装しました。
コインブロックの差分
アイテムボックスの差分


ついでにスプライト情報のメンバ変数がごちゃごちゃしていたので、キャッシュクラスを作り、ステージマップと共にgame_systemのメンバにしました。
sprite_info_cacheの差分
game_system変更差分
これで移動ルーチン等でスプライト情報を参照してキャラクタを追加できるようになりました。


今日の実装ではアイテムボックスからアイテムが出てくる際にアイテムがアイテムボックスより前に表示されてしまいます。
これはブロックを描画した後でアイテムを描画しているからです。
本当はアイテムが出てくる間だけブロックを手前に持ってきたいのですが、今のコードだとそれが難しかったりします。


単純にZ値を変えるだけだと、アルファ値が0の部分に背景色が残ってしまって(Zバッファはポリゴンに対して更新されるため)駄目で、奥から手前に向かって順にキャラクタを描画するしかありません。
毎フレームキャラクタリストをZ値でソートする余裕があれば簡単なんですけどね。
画面サイズ640x480、ブロックサイズ32x32の場合で最大300キャラ程度。
楽勝な気もしますが、測ってみないとなんとも言えませんね。