スタートボタンを押したときに実行します。
ゲームの状態が 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テトリスを作ってみてください!
次のページ