I create files by class
main.rb, game.rb
game

メンバー変数へのアクセスをインスタンス変数経由にした。
cleanupの実行順序をdraw内部とそろえる。
update内のSprite.checkをdraw内部とそろえる。
どちらもゲーム進行には影響しない。
player.rb, unit.rb

手書きでmasterにあわせた。
no commit
Debug: next game is soon game over

ゲームオーバー後、次のゲームを始めるとすぐにゲームオーバーになる。
Playerのdurabilityが０のままのため。
Game singleton class のinitializeコードをsetup内へ移動。

main.rbはインデント、およびbgmの初期化をtap使用に変更。
hit, shot dispatch & demolish implement

hit処理をSprite.checkの呼び出し機能を利用しGame#update内でディスパッチするように変更。
衝突する側の処理も、これに習う。(該当するshot_obj呼び出し)
hit_obj, shot_obj呼び出しにはあいてオブジェクトが引数ではいる。これを無視するように実装。
Ongoing Game play if player alive

メインループ、ゲームステート:playの処理を、Game#updateの帰り値ではなくGame.instance.player.alive?の値で次のステートへ行くようにした。
updateの帰り値を期待するのはここだけだ。
しかし、updateメソッドはゲーム進行の判定を返すのには不適切と判断。
updateメソッドの処理は更新のみとすべき。
Chenge to be able to fire Enemy instance

AI中のfire行為をEnemy側に移動し、enemy.fireと書くように変更。
AI側のgame引数は不要となったが、現時点ではこのまま。スクリプターがGame singleton
classの存在についての知識を必要としないように配慮
Remove WeakRef in Enemy, Stage class

Enemy, Stage classからGame.instanceへのWwakRefを張っていたのを削除した。
この変更はコードデザインへの影響を及ぼす。
つまり、ゲーム・システム側（クラスやモジュール）はGame singleton classが存在することを前提とすることになる。
私はGameが二つ同時にプレイされる状況が想像できなかった。よって、この方針に問題はないと考えている。
Merge pull request #5 from shinokaro/game-singleton-class

Debug: next game is soon game over
Merge remote-tracking branch 'shinokaro/game-singleton-class' into shinokaro

Conflicts:
	enemy.rb
	game.rb
	gun.rb
	main.rb
	player.rb
Merge branch 'master' into shinokaro
fixed #6 sprite doesn't animate(degrade)