上の図のように、プレイヤーと敵の「X・Y」方向の距離「w・h」の値を求めて、プレイヤーと敵の幅・高さと比較し、「w・h」が共に大きかった場合は当たっていることになります。同様に「プレイヤーと敵の弾」「プレイヤーの弾と敵」の当たり判定を作っていきます。敵に弾が当たったら、ランダムな位置(X座標)に配置し、角度もランダムに設定します。Mathの「random」関数は「0〜1」のランダムな値を返す関数なので、数値計算では若干注意が必要です。ダメージエフェクトと残基これで当たり判定はできましたが、敵・敵の弾がプレイヤーに当たった時になにもアクションがないので、このままではわかりづらいです。そこで、ダメージエフェクトと残基の表示を行います。{ポイントダメージを受けた後に、点滅を繰り返すことでダメージエフェクトを実装しています。ダメージエフェクトが発動している間はプレイヤーは無敵状態となり、敵の攻撃を受けません。「deffect」が「true」の場合はプレイヤーに対する当たり判定を無視します。ループ}敵の種類によってスコアが違う少しでもゲーム性を上げるために、敵の種類によってスコアが違うようにしました。黄色・・・300点ゲームオーバー処理いよいよゲームオーバー処理を行います。ループ}プレイヤーの死亡プレイヤーの残基が0になったらプレイヤーは死亡し、ゲームオーバーとなります。ゲームオーバーになると、プレイヤーは死亡しているため、プレイヤーに関する処理は実行する必要がありません。(11〜15行目)また、当たり判定も行う必要がないので条件文によって実行させません。Continue」の文字列が薄くなったり濃くなったりするようにします。これを実装するには、「sinカーブ」と呼ばれるものを用います。200\)このようにすることで、「0〜1」の間を200カウントの間で行ったり来たりするようになります。今回は3種類の敵が必要なので、「水色」の敵は「0」、「緑色」の敵は「1」、「黄色」の敵は「2」とします。このテトリスにおいて、何もないマスは「0」、壁を「9」とし、それ以外の数字をブロックとします。「update」関数内の「30カウントずつ」という「if」文に新たな条件文を付け加えます。このシリーズで目指していくテトリスは、このようなものになります。このシリーズを通してテトリスの作り方を学んでいくことによって、この画像と同じものを作ることができます。色の値は以下のように定数として用意します。コメントをキャンセルメールアドレスが公開されることはありません。R1カテゴリーJavaJavaFXJavaScriptPythonRこのサイトの管理人IT系だんしプログラミングが大好きな人。趣味でゲームやツール製作をしながら、プログラミング記事を書き続けています。