js实现俄罗斯方块游戏共享
复制代码代码如下所示:体{背景:# 000;字体:25px / 25px歌体;}
#箱{浮动:左;宽度:252px;边界:# 999 20px脊;颜色:# 9f9;文字阴影:2px 3px 1px # 0f0;}
#信息{浮动:左;颜色:# CFC;填充:24px;}
#下{填充:8px;宽度:105px;颜色:# 9f9;文字阴影:2px 3px 1px # 0f0;}
下一个:
VaR地图= eval({{+阵列(23)。加入(0x801,)+0xfff } );
无功tatris = { { 0x6600 },{ 0x2222,0xf00 },{ 0xc600,0x2640 },{ 0x6c00,0x4620 },{ 0x4460,0x2e0,0x6220,0x740 },{ 0x2260,0xe20,0x6440,0x4700 },{ 0x2620,0x720,0x2320,0x2700 } };
变量字符= { x: U3000
VaR钥匙= { 38 旋转(1)
var,POS,比克,运行,下一步,暂停=假,速度= 1,线:0,得分:0 };
函数start(){
下一个D;
Bak = POS = { FK:{ },:0,:4,:X的未来。};
Nextdia();
document.getelementbyid(下一步).innerHTML =(下D {下。的未来。d.length } | 0x10000)。ToString(2),Slice(16)。更换( /… / g,为LT,br / >)。更换(L,C)X(L,C);
document.getelementbyid(文本).innerHTML =得分+信息。得分+:+信息。线+速度+ info.speed;
旋转(0);
运行= setInterval(暂停| |下来()
}
函数在(){
文档化空;
警报(游戏结束);
}
功能nextdia(){
未来= { D:tatris { ~ ~(Math.random()×7)},:~ ~(Math.random()×4)};
}
函数更新(t){
Bak = { FK:pos.fk.slice(0),Y:pos.y,X:pos.x,:pos.s };
如果(t)返回;
对于(var i = 0,=;i < 22;i + +)
A2 + =地图{我} ToString(2)。片(1、1)+ ;
对于(var i = 0,n;i < 4;i +)
如果( /({ 0 } ^ +)/测试(Bak. FK {我} ToString(2)。更换( / 1 /克,char。T))))
A2 = a2.substr(0,n =(Bak. Y +我+ 1)* 15正则表达式。_美元。length-4)+ regexp。1美元+ a2.slice(N + regexp。1美元。长度);
document.getelementbyid(盒子).innerHTML = a2.replace( / 1 /克,焦的)。更换( / 0 /克,焦X。);
}
函数是(){
对于(var i = 0;i < 4;i + +)
如果((pos.fk {我}图{ pos.y +我})!= 0)返回;
}
函数旋转(r){
var =直径{ pos.s =(pos.s + R)%直径长度};
对于(var i = 0;i < 4;i + +)
我pos.fk { } =(f > >(12-i×4)15)<< pos.x;
更新(IS());
}
函数向下(){
+ + pos.y;
如果(是){
对于(var i = 0,r = 0;我< 4 pos.y +我<22;i++)
如果((图{ } | pos.y +我= pos.fk {我})= = 0xfff){
map.splice(pos.y +我,1),map.unshift(0x801);
+信息。行% = 20 = 0;
}
ClearInterval(跑);
如果(map { 1 })!= 0x801)收益();
信息。评分+ = ~ ~(math.pow(R 1.5)* 10)+ 2;
开始();
}
更新();
}
函数移动(t,k){
pos.x + = K;
对于(var i = 0;i < 4;i + +)
pos.fk {我}×= T;
更新(IS());
}
文档化功能(e){
eval(暂停| |+钥匙{(EE:事件)。KeyCode });
};
Nextdia();
开始();