壊れたメガネ

ホッチキスの達人の意識の高いブログ。

先週は android のゲームづくりちょっと進めて、マンガたくさん読んだ。

「あれ?先週なにやってたっけ?」と記憶がなくなりつつあるので、先週やったことをそろそろまとめることにしました。
大体はマンガ読んでサボっていました。あと、 android でシューティングゲーム作るってやつをやってました。

  • うしおととらを全部、こち亀を1巻~20巻くらいまで読んだ。
  • オブジェクトの向きの検出
  • オブジェクトのゲーム開始前の load
  • ゲームループにおいて不要になったオブジェクトの後処理とそのデバッグ

うしおととらを全部、こち亀を1巻~20巻くらいまで読んだ。
うしおととらおもしろかったな~。今思い返してみれば普通に少年漫画なんだけど、かなりのめり込んでたなぁ。うしおが「時逆」で「白面の者」や「獣の槍」の由来を目の当たりにしていくシーンは面白かった。あれで引き込まれた気がするな。
こち亀10巻くらいまでの両さんの破天荒さが好き。「あんな言動・思考回路を持つおっさんがいるのかな?」と思わせるリアリティがある。7巻の「ラジコン決戦!の巻」には幼き虹村形兆率いるバッドカンパニーが登場してきて胸が厚くなった。

オブジェクトの向きの検出
速度が 0 でないオブジェクトの向きはそのまんま速度の向き。速度が 0 のオブジェクトにも一応向きはあって、それをどうやって調べようかということやってました。
previousX previousY 見たいな直近の時刻における座標を持っておいて、 currentX currentY と比べて向きを出そうとしてました。けど、マップの実装方法のおかげでこの方法は複雑になりすぎることが分かったので止め。
結局シンプルに、オブジェクトが使用しているタイルの番号で判別することにしました。「タイルの何番目はこの向き」とか言う風に素材画像の仕様を決めつけてもよかったけど、面倒になりそうなので getDirectionByTileIndex みたいな名前の抽象メソッドを定義して実装は子クラスに任せることにしました。

オブジェクトのゲーム開始前の load
当たり前といえばそうかも知れませんが、描画オブジェクトをゲーム開始後にその場その場で new あるいは load していたら、その度に GC が走っていたのでこりゃまずいとなって見直すことにしました。自機が弾を放つ度に GC が走り、 0.2 秒ほど停止するというとんでもないことになってました。

ゲームループにおいて不要になったオブジェクトの後処理とそのデバッグ
破壊された敵機とかうち終えた自弾とかの不要になったオブジェクトの後処理をせっせと作ってました。
ところが、ゲームから撤収させたはずのオブジェクトが思わず残りつづけていたり、爆発しつづけていたりと愉快な事になっていたので、そのデバッグを行っていました。


大体順調です。