javascript俄罗斯方块【附带源码】
在看了W3C的关于ECMScript的对象及继承后,先是完成贪吃蛇的实现。最近又抽空实现了下俄罗斯方块。对于俄罗斯方块重要的不是游戏本身,而是在这个过程中对于javascript继承的使用。
当然在一些对象的划分及使用过程还存在瑕疵,算法也不算最优,发布出源码只是想做个交流。以下就提供源代码供大家参考,也为自己做个备份。也可在直接点击下载。游戏效果图为:
这里对代码不做说明了,可以看代码块中的注释//********************************Utils.js*******************************************************
/**
* 辅助类
* @author leeyee
* @blog blog.csdn.net/oxcow
* @email seadlead@gmail.com
* @data 2010-4
*/
/**
* 创建DOM元素
*
* @param sTagName
* 元素名
* @param sTagId
* 元素ID
* @param sText
* 元素文本
* @return DOM元素对象
*/
function createElement(sTagName, sTagId, sText) {
var oElement = document.createElement(sTagName);
if (sTagId != null) {
oElement.setAttribute("id", sTagId);
}
if (sText != null) {
oElement.appendChild(document.createTextNode(sText));
}
return oElement;
}
function RandomEventUtils() {
}
/**
* 得到从零到N的随机整数
*
* @param iN
* 最大整数
* @return 0-iN的随机整数
*/
RandomEventUtils.getIntRandomNumfromZeroToN = function(iN) {
var iR = Math.random() * iN;
return Math.round(iR);// 舍尾取数
};
/**
* 获取某个元素在数组中的位置
*
* @param vItem
* 目标元素
* @return 目标元素在数组中的索引
*/
Array.prototype.indexOf = function(vItem) {
for ( var i = 0; i < this.length; i++) {
if (vItem == this[i]) {
return i;
}
}
return -1;
};
/**
* 获取数组的长度。不包括undefined元素
*
* @return
*/
Array.prototype._length = function() {
var __len = 0;
for ( var i = 0; i < this.length; i++) {
if (this[i] != undefined) {
__len++;
}
}
return __len;
};
/**
* 清除数组中的undefined元素
*
* @return 数组清除后的数组(数组长度改变)
*/
Array.prototype.cleanUndefinedElement = function() {
for ( var i
相关文档:
function f_MobilCheck(as_SourceString)
{
if(as_SourceString.match(/^13[0-9]{9}$/g)) return true; //手机号为13开头的11位数字
else if(as_SourceString.match(/^[0]{1}[0-9]{2,3}[2-8]{1}[0-9]{5,7}$/g)) return true; //小灵通为0开头的3-4位的区号+不以1和9开头的6-8位数字
retur ......
第三章 对象基础
在javaScript中,对象是无特定顺序的值的数组。
一、对象的类型
分为本地对象、内置对象和宿主对象三种,其中内置对象也属于本地对象。
二、本地对象:
1、Array类,数组类。
  ......
1.document.formName.item('itemname')的问题
说明:IE下可以使用document.formName.item('itemname')和document.formName.elements('elementsName');
FF下只能使用docuement.formName.elements('elementsName');
解决方法:统一使用docuement.formName.elements('elementsName');
2.集合类对象问题
说明:IE下可以使用[]和 ......
Javascript中function即为类,在function内部用this设置类的public成员变量与方法,例如:
function myclass(name){
var str = "private string"; //private field
function privatefn(){ //private method alert(str);
};
this.name = name;
......
1. 一种面向对象语言需要开发者提供以下四种基本能力。
(1)封装---把相关信息(无论属性还是方法)存储在对象中的能力。
(2)聚集---把一个对象存储在另一个对象内的能力。
(3)继承---由另一个类(或多个类)得来类的属性或方法的能力。
(4)多态---编写能以多种方法运行的函数或方法的能力。
2. 把对象的所 ......