网络编程
位置:首页>> 网络编程>> JavaScript>> js游戏 俄罗斯方块 源代码

js游戏 俄罗斯方块 源代码

 来源:蓝色理想 发布时间:2008-01-24 13:14:00 

标签:代码,游戏,js,俄罗斯方块

javascript版 俄罗斯方块(Russian box)小游戏,喜欢的朋友可以玩玩。

对源代码感兴趣的朋友也可以研究一下。

玩法介绍:

可以输入1-9表示速度,9速度最快。

4个方向键控制游戏方向,↑变形,暂停是空格键。

开始游戏:俄罗斯分块

部分js源代码:

function ShowBlock(x,y,block_type,color){
    for (var i=0;i<block_tbl.rows.length;i++){
        for (var j=0;j<block_tbl.rows(i).cells.length;j++){       
            var d2 = i * 4 + j;
            if (block_type[d2]==1){
                block_tbl.rows(i).cells(j).style.background = color;
            }
            else{
                block_tbl.rows(i).cells(j).style.background = "";
            }
        }
    }
    block_div.style.pixelLeft=x;
    block_div.style.pixelTop=y;
}
function ShowBlock1(x,y,block_type,color,obj_tabID,obj_divID){
    for (var i=0;i<obj_tabID.rows.length;i++){
        for (var j=0;j<obj_tabID.rows(i).cells.length;j++){       
            var d2 = i * 4 + j;
            if (block_type[d2]==1){
                obj_tabID.rows(i).cells(j).style.background = color;
            }
            else{
                obj_tabID.rows(i).cells(j).style.background = "";
            }
        }
    }
    obj_divID.style.pixelLeft=x;
    obj_divID.style.pixelTop=y;
}
function Change(inc){
    var type = curBlock.substr(0,4);
    var num = curBlock.substr(curBlock.length-1);
    num = parseInt(num) + inc;
    if (num>4||num<1) num -= 4*inc;
    type += num;
    eval("arr_tmp = " + type + ";");
    if (CanMove(curX,curY,arr_tmp)){
        curBlock = type;
        eval("arr_curBlock = " + curBlock + ";");
        eval("ShowBlock(block_div.style.pixelLeft,block_div.style.pixelTop," + curBlock + ",colors[" + cid + "]);");
    }
}
function CanMove(x,y,block){
    for (i=0;i<4;i++){
        for (j=0;j<4;j++){
            if (block.getd(i,j,4)&table.getd(y/n_IncStep+i,x/n_IncStep+j,16)) return false;
        }
    }
    return true;
}
function NewBlock(){
    curBlock = nextBlock;
    cid = ncid;
    bid = Math.round(Math.random()*(blocks.length-1));
    ncid = Math.round(Math.random()*(colors.length-1));
    nextBlock = blocks[bid];
    eval("arr_curBlock = " + curBlock + ";");
    eval("ShowBlock(120,0," + curBlock + ",colors[" + cid + "]);");
    eval("arr_curBlock = " + curBlock + ";");
    eval("ShowBlock1(466,116," + nextBlock + ",colors[" + ncid + "],nblock_tbl,nblock_div);");
}
function SaveBlock(){
    for (i=0;i<4;i++){
        for (j=0;j<4;j++){
            table[(curY/n_IncStep+i)*16+curX/n_IncStep+j]|=arr_curBlock[i*4+j];
         

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com