ランダムピースが落とせたら、
次は、落とした後次が落ちてくる処理です。
それ自体は簡単なのですが、
いくらでも落ちてくるってことは、
上まで積もる可能性があるってことです。
画面の上まで積もると、
先ほどみたいにエラーになっちゃうので、
次が落ちてくる処理の前に、
上まで積もったらゲームオーバー処理に飛ばすコードを
作らないといけません。
既にあるコードに、ゲームオーバー用の判定を追加するより、
既にあるコードで、
「画面の上まで積もったとき困る部分」
を、
「困る可能性があるならゲームオーバー」
と考え直すとスマートに作れそうです。
さて、困る部分を探しましょう。
「積もったとき」ですから、
実は探すも何も無いです。
TPiece.main で、
//どう見ても当たります。
っていうコメントがありますね。
そこです。
で、そこは自殺処理と、自分をフィールドに転送する処理がありました。
フィールドに転送する処理を見てみると、
Forループで1マスずつMapBlocksにコピーする処理があります。
そこで、
コピー先が画面より上だったら、
ゲームオーバーフラグを立てて、
Timerの方のメインルーチンの最後で判定するようにしましょう。
コピーする処理で、フラグを立てないで、
一気にゲームオーバー処理をしてしまうのは、
ピースがゲーム全体に対して権限をもった構造になってしまうので、
キモチワルイからやめます。
宣言/実装は次で
コンテンツ
最新の12件
2023-06-12
2021-02-15
2013-06-19
2012-07-14
2012-02-04
2012-01-06
2011-03-31
2010-08-26
2010-03-15
2009-10-21
2009-02-12
2008-11-18
メニュー編集
- counter: 921
- today: 1
- yesterday: 0
- online: 2