`
jamins
  • 浏览: 679 次
  • 性别: Icon_minigender_1
  • 来自: 韶关
最近访客 更多访客>>
社区版块
存档分类
最新评论

HTML5写的简单小游戏绵羊快跑

阅读更多

 

最近在网上看到一款灵敏测试的flash小游戏,很感兴趣,于是想自己也写写。一开始是使用JS去实现的,算法是写出来了,但后来发现性能实在太差了,于是放弃了,后来想起HTML5这门新崛起的技术,在动画视频等各方面性能都很强大,而且WEB很有发展前景,很受众多浏览器及大公司欢迎,一直将学习重心放在PHP上,也想多接触一下其他语言,所以就改用html5来实现。废话就不多说了,想了解更的关于HTML5技术就去百度、谷歌一下吧!

      程序写得比较简单,算是实现了效果,有时间再去优化一下!

      测试地址:http://meego123.net/sheep/

     源代码:http://meego123.net/post-61.html

以下是部份代码片段

 

function init(){
var map=document.getElementById('map');
context=map.getContext('2d');

 drawMap();//创建地图

drawSheep();//绘制绵羊

/*每3秒钟生随机出现一个狼*/
wolfTimeout=setTimeout(createWolfs,wolfRate+wolfCounts*3000); 
wolfRate+=wolfCounts*3000;
drawWolfs();
}
绘制绵羊
/*绘制绵羊*/
function drawSheep(){
	var sheepImg=new Image();
	    sheepImg.src='images/lsheep.gif';
	 if(moveLeft){
		 sheepXspeed--;
	 }
	 if(moveRight){
		  sheepXspeed++;
		  sheepImg.src='images/rsheep.gif';
	 }
	 if(moveUp){
		  sheepYspeed--;
	 }
	 if(moveDown){
		  sheepYspeed++;
	 }
	context.drawImage(sheepImg,sheepX,sheepY);
	context.fill();
	/*移动距离计算*/
	 
	if(sheepX>=0&&sheepX<=(mapWidth-sheepWidth)){
		sheepX+=sheepXspeed;
	}else if(sheepX<0){
		sheepX+=Math.abs(sheepXspeed);
	}else if(sheepX>(mapWidth-sheepWidth)){
		sheepX-=Math.abs(sheepXspeed);
	}
	
	if(sheepY>=0&&sheepY<=(mapHeight-sheepHeight)){
		sheepY+=sheepYspeed;
	}else if(sheepY<0){
		sheepY+=Math.abs(sheepYspeed);
	}else if(sheepY>(mapHeight-sheepHeight)){
		sheepY-=Math.abs(sheepYspeed);
	}
	sheepXspeed*=sheepFriction;
	sheepYspeed*=sheepFriction;
}

  随机增加一个狼

 

/*增加狼群*/
function createWolfs(){
	/*0123 上下左右*/
	direction=parseInt(Math.random()*4);
	/*狼随机出现的x y 坐标*/
    wx=parseInt(Math.random()*(mapWidth-wolfWidth));
	wy=parseInt(Math.random()*(mapHeight-wolfHeight));
	
	var wolfObj=new Object();
	
	switch(direction){
		case 0:
			wolfObj.x=wx;
	        wolfObj.y=0;
		break;
		case 1:
			wolfObj.x=wx;
	        wolfObj.y=mapHeight-wolfHeight;
		break;
		case 2:
			wolfObj.x=0;
	        wolfObj.y=wy;
		break;
		case 3:
			wolfObj.x=mapWidth-wolfWidth;
	        wolfObj.y=wy;
		break;
	}
	wolfs.push(wolfObj);
	clearTimeout(wolfTimeout);
}

  代码实现都比较简单~都是一些比较基础的js,见笑了!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics