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は、後ほど詳しく書きます。
つづく