首先说[[], [], ...],这是生成一个数组,而这个数组中的元素又各为数组。在JavaScript中,可以通过方括号来定义并初始化数组, 如:
创新新互联,凭借10多年的网站设计、成都做网站经验,本着真心·诚心服务的企业理念服务于成都中小企业设计网站有近1000家案例。做网站建设,选创新互联建站。
var a = [1, 2, "text"];
十六进制数的作用未看到使用的代码,故无法说明。就十六进制数本身来说,就是定义一个数值而已。
Array(23)则是定义一个23个元素的数组。脚本的第一句,其实就是定义一个数组,有23个元素,前22个元素为0x801, 最后一个元素为0xfff。这样写是省去了重复写22个0x801的工作。
R
#board
tr
td{
width:
20px;
height:
20px;
}
/**
*
JS俄罗斯方块完美注释版
v
1.01
*
从学c语言那一会儿都想写一个俄罗斯方块,可是每次动起手总觉得难度太大.
*
今天终于用了大约4个小时写出来了.
其中在涉及到方块变型的时候还咨询了
*
同学来帮忙;
*
*
个人觉得难点有这么几个:
*
1:
边界检查,
不多说,
想通了就行
*
2:
旋转,
还是数学上的方法,
一个点相对另外一个点旋转90度的问题.
*
4:
让整个程序在点开始之后,
怎么让它一直自动的运行下去.
我以前一直没有做完,
*
主要是因为没有想清楚到底要用一个什么机制让游戏自动运行下去,
*
这个过程可以这么理解:
*
用户点开始-构造一个活动图形,
设置定时器,
*
每次向下移动后,
都检查是否触底,
如果触底了,
则尝试消行,
*
完了之后再构造一个活动图形,
再设置定时器.
*/
//表示页面中的table,
这个table就是将要显示游戏的主面板
var
tbl;
//游戏状态
0:
未开始;1
运行;
2
中止;
var
status
=
0;
//定时器,
定时器内将做moveDown操作
var
timer;
//分数
var
score
=
0;
//board是一个18*10的数组,也和页面的table对应.
//用来标注那些方格已经被占据.
初始时都为0,
如果被占据则为1
var
board
=
new
Array(18);
for(var
i=0;i
看你问的这问题说明你连js的基础都不怎么懂,
你所说的点击一个地方把网页上的一个图片移动到你点击的地方具体实现方式:
点击时获取当前坐标,再为图片做一个动画效果,移动到你点击的位置。
想编游戏先把基础弄弄好。
前两行,分别定义了两个变量,一个是map,一个是tatris。
map是一个数组,他用了eval语句执行了一段代码:
"["+Array(23).join("0x801,")+"0xfff]"
大概的意思,就是建立了一个数组[],Array(23)是一个23个元素的空数组,然后join的用途是把数组转化成字符串,字符串最后加上0xfff这样就变成了:
[0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0xfff]
由eval执行上面的字符串,就会把这个数组生成,然后通过=赋值给map变量。
第二行,就简单了,就是一个声明了一个二维数组,这个数组一共7个成员,数组的成员是数组。我估计就是不同的方块的排列组合。
之后我们看到后面的代码有这段
dia=tatris[~~(Math.random()*7)];就是从tatris数组里随机取一个数组。也就是提取一个随机的方块的数据。
你这段代码中,map并没有提及,我估计是用来绘制背景的数据之类的东西吧。