HTML5 知识库

html5-贪食蛇

   阅读:632次   评论:17条   更新时间:2010-11-30    

随着HTML5的插入触碰到RIA的G点,b/s的生产力将进一步解放,生产效率将进一步提高,由此必将引起生产关系的变化,即由原来的c/s结构的保守主义,地方主义向着b/s的共产主义初级阶段迈进。Javascript,作为RIA中的宠儿,在这场浪潮中,必定迎来高潮。

识时务者为俊杰。在这个大背景下,各路英雄纷纷揭竿而起,竖起javascript的大旗,誓要在后RIA时代的舞台中占有一席之地。yangguo也未能免俗,开始重新审视这门畸形的面向对象语言。

然而畸形毕竟是畸形,没有道行进一步学习可谓举步维艰,正当陷在闭包,this,prototype,Function中百般混沌时,忽然眼前出现一白发老人。只听老人说道:

把这个代码看一看,JS的哲学思想都融合在代码里了。

我运行了那代码,发现什么也没有,怔怔地看着老人。老人抚须蔑视道:呆子,什么年代了还用IE。我反应过来换上firefox, 发现竟是一贪食蛇游戏,正惊奇间,那老人已飘然而去,口中喃喃说道:

对象本无根,类型亦无形。本来无一物,何处惹尘埃?

如今我把那奇怪的代码放在了附件,大家可以看看。












此文章带有附件,请前往http://yangguo.iteye.com/blog/829287下载
评论 共 17 条 请登录后发表评论
17 楼 wmj007 2010-12-07 17:14
作者的确是文采很好,也很幽默,在简单故事描述中道出小东西的运行环境,有意思,拿来玩玩,的确是厉害人物,JS都这样玩了
16 楼 cleanidea 2010-12-03 08:30
看过楼主几个帖子 都很有意思 ,将程序和许多东西结合在一起
15 楼 scyscy1234 2010-12-02 21:39
测试的时候出现一个怪现象,当撞到墙上的时候不停的alert啊
14 楼 sinxsoft 2010-12-02 16:53
需要ie9。
13 楼 yangguo 2010-12-02 11:50
cai3178940 写道
楼主太厉害了,我发现2个Bug,改变方向的时候蛇会多走一步,这个bug我帮楼主改好了
this.turn = function(code){
		var head = this.getHead();
		var point = new E770(head.x,head.y);
		
		switch(code - 36){
			case 1:
			if(this.k209 == 1 || this.k209 == 3)
			return;	
			//point.x--;  //只改方向就行不用多走一步
			break;
			case 2:
			if(this.k209 == 2 || this.k209 == 4)
			return;
			//point.y--;
			break;
			case 3:
			if(this.k209 == 1 || this.k209 == 3)
			return;
			//point.x++;	
			break;
			case 4:
			if(this.k209 == 2 || this.k209 == 4)
			return;
			//point.y++;
			break;		
		}
		this.k209 = code - 36;
		//this.process(point);   //这里也不用判断逻辑了
	}



还有一个Bug是点两次开始游戏,蛇死亡时会不停的跳game over



呵呵,第一个不是什么bug。改变方向是要动一下,这样控制感比较强,否则效果很不好,你调到速度1就体现出来了。第二个bug修正如下:

引用

this.startGame = function(step){
this.clear();
clearInterval(this.moveHandle);
e398.init();
this.score = 0;
this.scoreLabel.innerHTML = this.score;
this.gamePanel.onkeydown = onKeyDown;
this.step = parseInt(step);
this.moveHandle = setInterval(move, 500 - 50 * this.step);
}



12 楼 flyingzl 2010-12-02 11:24
yangguo 写道
随着HTML5的插入触碰到RIA的G点,b/s的生产力将进一步解放,生产效率将进一步提高,由此必将引起生产关系的变化,即由原来的c/s结构的保守主义,地方主义向着b/s的共产主义初级阶段迈进。Javascript,作为RIA中的宠儿,在这场浪潮中,必定迎来高潮。

识时务者为俊杰。在这个大背景下,各路英雄纷纷揭竿而起,竖起javascript的大旗,誓要在后RIA时代的舞台中占有一席之地。yangguo也未能免俗,开始重新审视这门畸形的面向对象语言。

然而畸形毕竟是畸形,没有道行进一步学习可谓举步维艰,正当陷在闭包,this,prototype,Function中百般混沌时,忽然眼前出现一白发老人。只听老人说道:

把这个代码看一看,JS的哲学思想都融合在代码里了。

我运行了那代码,发现什么也没有,怔怔地看着老人。老人抚须蔑视道:呆子,什么年代了还用IE。我反应过来换上firefox, 发现竟是一贪食蛇游戏,正惊奇间,那老人已飘然而去,口中喃喃说道:

对象本无根,类型亦无形。本来无一物,何处惹尘埃?

如今我把那奇怪的代码放在了附件,大家可以看看。









哈哈,楼主看过《悟透javascript》这部书吧,把里面的几句话学到了,尤其是“对象本无根,类型亦无形。本来无一物,何处惹尘埃?”
11 楼 sjzw46673 2010-12-02 10:53
说实话,我不知道讨论非IE应用有什么意义,国内太多客户只知道IE了。非IE只是在程序员之间在讨论,但程序员大多数时候不是客户。
10 楼 cai3178940 2010-12-02 09:07
楼主太厉害了,我发现2个Bug,改变方向的时候蛇会多走一步,这个bug我帮楼主改好了
this.turn = function(code){
		var head = this.getHead();
		var point = new E770(head.x,head.y);
		
		switch(code - 36){
			case 1:
			if(this.k209 == 1 || this.k209 == 3)
			return;	
			//point.x--;  //只改方向就行不用多走一步
			break;
			case 2:
			if(this.k209 == 2 || this.k209 == 4)
			return;
			//point.y--;
			break;
			case 3:
			if(this.k209 == 1 || this.k209 == 3)
			return;
			//point.x++;	
			break;
			case 4:
			if(this.k209 == 2 || this.k209 == 4)
			return;
			//point.y++;
			break;		
		}
		this.k209 = code - 36;
		//this.process(point);   //这里也不用判断逻辑了
	}



还有一个Bug是点两次开始游戏,蛇死亡时会不停的跳game over
9 楼 yangguo 2010-12-01 19:48
pouyang 写道
有bug啊,把速度调快了,一直死在那里弹出alert,强迫任务管理器关浏览器。


将alert移到stopGame里即可fix.

this.stopGame = function(){
		this.pause();
		alert("Game Over");
		document.getElementById("control").disabled = true;
		localStorage.maxScore = this.maxScore; 
		//alert(localStorage.maxScore);
	}


8 楼 yangguo 2010-12-01 18:42
pouyang 写道
有bug啊,把速度调快了,一直死在那里弹出alert,强迫任务管理器关浏览器。


这个bug我记得已经fix了。你再玩几次,看下有没出现。
7 楼 pouyang 2010-12-01 18:39
有bug啊,把速度调快了,一直死在那里弹出alert,强迫任务管理器关浏览器。
6 楼 yangguo 2010-12-01 18:39
我开8倍速,玩到528。
5 楼 zhuyan_zy 2010-12-01 18:37
yangguo 写道
奇怪,我在空间删个贴子怎么把这个帖子的回复全都删了?!

去问肉饼
4 楼 zhuyan_zy 2010-12-01 18:36
要我是LZ我就改行,哈哈
3 楼 yangguo 2010-12-01 18:36
奇怪,我在空间删个贴子怎么把这个帖子的回复全都删了?!
2 楼 zhuyan_zy 2010-12-01 18:35
文采大于程序
1 楼 snow8261 2010-12-01 16:50
ie 好像不支持

发表评论

您还没有登录,请您登录后再发表评论

Global site tag (gtag.js) - Google Analytics