「ブロック移動した時点で、別のブロック・壁と重なったら移動距離分を戻す」ということになります。これを図で表すとこのようになります。これは横に移動した場合でも、重なったら戻す、という作業を行います。当たり判定を作成それでは、先ほどの考え方を用いて、実際に当たり判定を作っていきます。break;}}}//省略ちなみにこの「breakflag」というのはループを抜けるための一時変数です。「break」では多重ループを一気に抜けることはできません。最上層のループ内で「break」するためにフラグ変数を作成しました。・スペースキー・・・スピードアップの5つのキーを用います。このキーが押されたか、またはそうでないかの状態を表す変数を用意し、その変数の値によって、キーが押されたかどうかを判定します。0;キーイベントの取得JavaScriptでは、キーイベントの取得を「addEventListener」関数を用いて行います。この関数では他にもマウスイベントの取得もできるので、覚えておくと便利です。=>」の部分はラムダ式と呼ばれるもので、他の言語でもよく用いられるので知っておきましょう。(ちなみに言語によって「=>」や「->」のバリエーションがあります。)関数のはじめで「キーコード」と呼ばれるものを取得しています。このキーコードはもともと各キーに割り当てられている識別番号のことで、これはインターネットで簡単に調べることができます。キー操作を行う次に、キー操作を行っていきます。これはキーの状態を判別し、移動や回転を行なっていく作業になります。カウンタを更新requestAnimationFrame(main);}少し長いですが、流れとしては「移動→当たり判定」「回転→当たり判定」を行なっているだけです。この当たり判定は、先ほどプログラムしたものと同じものとなります。回転処理の際に「0→1→2→3→0→1...」を繰り返すため、「3」より上の数字になったら「0」に戻す、「0」より下の数字になったら「3」に戻すといった処理を行います。今回は以上となります。次回からブロックを積んでいく処理を作成していきます。その弾が存在しているかどうかのフラグ。フラグを表す変数は基本的に「true・false」で管理します。今回は3種類の敵が必要なので、「水色」の敵は「0」、「緑色」の敵は「1」、「黄色」の敵は「2」とします。色の値は以下のように定数として用意します。このシリーズで目指していくテトリスは、このようなものになります。このシリーズを通してテトリスの作り方を学んでいくことによって、この画像と同じものを作ることができます。今、ブロックが壁・ブロックに着地した段階までできました。コメントをキャンセルメールアドレスが公開されることはありません。R1カテゴリーJavaJavaFXJavaScriptPythonRこのサイトの管理人IT系だんしプログラミングが大好きな人。趣味でゲームやツール製作をしながら、プログラミング記事を書き続けています。