LoginSignup
1
2

More than 5 years have passed since last update.

テトリスをつくってみました 説明4 回転パターン tetris.js

Last updated at Posted at 2016-01-01


var ROTATE_CHANGE ={};
ROTATE_CHANGE [ COLOR [ 0 ] ]= 
        [
            [
            0,0,0,0,
            1,1,1,1
            ],

ROTATE_CHANGE [あか] で、赤ブロックの回転パターンが得られます。

ewCurrent[ y ][ x ] = current[ 3 - x ][ y ];として回転させています。面白いですね。(引用)
おったち野郎さんは、数式を使ってやっています。

僕のは16版テトリスを真似しています。(それも、数式で実現できるかもしれませんが、頭がいたくなるので地道にブロックパターンを入力としました)


            [
            0,0,1,0,
            0,0,1,0,
            0,0,1,0,
            0,0,1,0
            ],
        ];

ROTATE_CHANGE[ COLOR [ 1 ] ] = 
        [
            [
            0,0,0,0,
            1,1,1,0,
            1
            ],


割愛します。


var playerBlock = {
    x : 0,
    y : 0,
    tetrisBlock : 0 ,
    rotatePattern: 0,
};

rotatePattern は後から付け足しました。
rotate(playerBlock)
playerBlockを渡して、回転したものに変えてもらう。こうすれば、roattePatternプロパティはいりません。どれもありでしょう。ただ、近しいことは、近くにあった方が分りやすい」。その考えで、プロパティを選択しました。


function keyPress ( key ) {

    switch ( key ) {
        case 'down' :
            /// reset setTimeInterval 250ms
            moveBlock(0, 1);
            break;
        case 'rotate' :
            moveBlock(0, 0, 1);
            break;
        case 'left' :
            moveBlock(-1, 0);
            break;
        case 'right' :
            moveBlock( 1, 0);
            break;
    }
}


これはほぼ同じです。
/// reset setTimeInterval 250ms
下キーを押したら、自動的に落下していく間隔をリセットする。
はい、未実装です。

setTimeIntervalは、後ほど詳しく書きます。

つづく

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2