スタートボタンを押したときに実行します。
ゲームの状態が initial か stop であれば、落下ブロックを落とし始めます。それ以外の状態ではなにもしません。
ストップボタンを押したときに実行します。
ゲームの状態が running であれば落下ブロックを落とすのを止めます。
リセットボタンを押したときに実行します。
ゲームの状態が initial 以外であれば初期状態に戻します。
すべてのマス目のマテリアルを fixedBlockMaterial にして、 visible = false に設定します。
これまで作成した関数を実行してゲームの完成です!
index.htmlをブラウザから開いて遊んでみてください。
今のままだと複数の層を消すとき、ちゃんと動作するか確認しずらいです。
そこで blockShapeList を次のように変更してテストしてみます。
変更したらブラウザを更新してください。
blockShapeList を変更することで落下ブロックを自由にいくつでも作ることができます。 落下ブロックの一辺の長さを変えるときは、 blockSideLength の値も変更してください。
dropInterval を小さくすると落下ブロックの落ちるスピードが速くなります。
widthLength と heightLength を変更することでステージを大きさを変えることができます。
ただし、大きしすぎに注意してください。
たとえば、widthLength を40、 heightLength を50にしたとすると、40×40×50で8万個のThree.jsのオブジェクトを生成することになります。 場合によっては動作が重くなってしまうこともあります。
スコアを表示してブロックを消すごとにスコアが上がっていくようにしてみても面白いと思います。
ぜひオリジナルの3Dテトリスを作ってみてください!
次のページ