衝突判定を実装
プレイヤーがブロックに当たったらゲームオーバーとしたい
判定方法
まず、2者間の衝突を考える
考え方
四角形 A と四角形 B が衝突しているかどうかを確認する方法:
- A, B の x 軸 方向での距離が十分に開いていたら、衝突していない
 - A, B の y 軸 方向での距離が十分に開いていたら、衝突していない
 - 以上いずれでもないなら、衝突している
 
            説明用スケッチ
            (クリックで開く)
            
          
2者間の衝突を判定する関数
上記をそのまま実装すると次のようになる
                    
                   | 
                  
                    
                   | 
                
ここで、「衝突しないギリギリの距離」は次の通り
- x軸方向: 
(A の幅の半分) + (B の幅の半分) - y軸方向: 
(A の高さの半分) + (B の高さの半分) 
実装
- 上述の衝突判定関数を用意する
 - プレイヤー 対 各ブロック について判定し、衝突していたらゲームオーバー
 
                    
                   | 
                  
                    
                   | 
                
動かしてみてみましょう。
プレイヤーがブロックに当たったらゲームオーバーになることを確認してください。
一区切り
以上で、Flappy Bird ライクなゲームの基本的なルールが一通り実装できました。
おめでとうございます!さて、本当に面白いのは、これをベースにしてどんなふうにでもアレンジできる上に、
同じ骨組みを使って全く別のゲームも作れてしまうという点です。この先もぜひ自由に改造してみましょう。
「アレンジいろいろ」 にていくつか選択肢を示していますが、
他にも可能性は無限大です。