`
silence19841230
  • 浏览: 6333 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

as3学习从头开始(二)-100行代码的贪吃蛇

    博客分类:
  • as3
 
阅读更多

100行代码的贪吃蛇

    贪吃蛇 

 

 

package
{
	import flash.display.Sprite;
	import flash.events.KeyboardEvent;
	import flash.geom.Point;
	import flash.utils.setInterval;
	
	[swf(frameRate=30, width=480, height=360)]
	public class Main extends Sprite
	{
		private var step:int=12;//步长
		private var mapWidth:int=40;//地图宽
		private var mapHeight:int=30;//地图高
		private var snake:Vector.<Point>;//蛇身
		private var change:Point;//运动方向
		private var food:Point;//食物
		public function Main()
		{
			newGame();//新游戏
			throwFood();//抛出食物
			stage.addEventListener(KeyboardEvent.KEY_DOWN,onDown);//键盘事件侦听
			drawSnake();//画蛇
			setInterval(go,100);//蛇自己的游动运动
			stage.color=0xCCCCCC;
		}
		private function go():void{//蛇游动
			addChange();
			drawSnake();
		}
		private function drawSnake():void{//画蛇
			this.graphics.clear();
			this.graphics.lineStyle(0.5,0x666666)
			this.graphics.beginFill(0x999999)
			for(var i:int=0;i<snake.length;i++){
				this.graphics.drawRect(snake[i].x*step,snake[i].y*step,step,step);
			}
			this.graphics.endFill();		
			drawfood();
		}
		private function throwFood():void{//抛出食物
			var p:Point=new Point(int(Math.random()*(mapWidth-5)+2),int(Math.random()*(mapHeight-5)+2));
			if(checkHit(p)){
				throwFood();
				return;
			}
			food=p;			
		}
		private function drawfood():void{//画食物
			this.graphics.beginFill(0x990000)
			this.graphics.drawRect(food.x*step,food.y*step,step,step);
			this.graphics.endFill();
		}
		private function checkHit(p:Point):Boolean{//检测碰撞
			for(var i:int=0;i<snake.length;i++){
				if(p.equals(snake[i]))return true;
			}
			return false;
		}
		private function onDown(e:KeyboardEvent):void{//键盘事件控制蛇的游动
			switch(e.keyCode){
				case 37:change=new Point(-1,0);
					break;
				case 38:change=new Point(0,-1);
					break;
				case 39:change=new Point(1,0);
					break;
				case 40:change=new Point(0,1);
					break;
			}
			addChange();
			drawSnake();
		}
		private function addChange():void{//蛇的变化
			if(change.x==0&&change.y==0)return;//蛇不动时,不处理
			var p:Point=new Point(snake[0].x+change.x,snake[0].y+change.y);
			if(checkHit(p)){//吃到自己的身体时,则重新开始游戏
				newGame();
			}
			else if(p.equals(food)){//吃到食物,身体加长
				snake.unshift(p);
				throwFood();
			}
			else if(p.x<0||p.y<0||p.x>mapWidth||p.y>mapHeight){
				newGame();
			}
			else{
				snake.unshift(p);
				snake.pop();
			}
		}
		private function newGame():void{//新游戏
			snake=new Vector.<Point>;
			change=new Point(0,0);
			snake.push(new Point(0,0));
			snake.push(new Point(0,1));
			snake.push(new Point(0,2));
			snake.push(new Point(0,3));
		}
	}
}

 

分享到:
评论

相关推荐

    100行Python代码的贪吃蛇小游戏源码.zip

    100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码...

    基于Arm-6818开发板的贪吃蛇游戏c++源码+项目说明.zip

    基于Arm-6818开发板的贪吃蛇游戏c++源码+项目说明.zip 基于Arm-6818开发板的贪吃蛇游戏c++...3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!

    13--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    13--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码13--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码13--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码13...

    微信小程序练手项目-小程序贪吃蛇小游戏(完整代码)

    微信小程序练手项目-小程序贪吃蛇小游戏(完整代码)微信小程序练手项目-小程序贪吃蛇小游戏(完整代码)微信小程序练手项目-小程序贪吃蛇小游戏(完整代码)微信小程序练手项目-小程序贪吃蛇小游戏(完整代码)微信小程序练...

    Unity和C#-游戏开发-贪吃蛇+源代码工程

    Unity和C#-游戏开发-贪吃蛇+源代码工程

    游戏编程笔记-起步3-贪吃蛇游戏源代码

    《游戏编程笔记-起步3-贪吃蛇游戏源代码》 贪吃蛇是一款经典的游戏,它的设计简单却富有挑战性,深受玩家喜爱。本篇笔记将深入探讨如何使用C++和Visual Studio 2008(以下简称VS2008)来实现一个简易的贪吃蛇游戏。...

    简单思路实现游戏----贪吃蛇源码

    在本文中,我们将深入探讨如何使用Cocos2d-x框架实现一个简单的“贪吃蛇”游戏。Cocos2d-x是一个流行的开源游戏开发框架,它使用C++编写,支持跨平台开发,适用于iOS、Android、Windows等多个操作系统。下面,我们将...

    2--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    2--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--...

    41--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    41--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码41--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码41--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码41...

    WIN-TC写的贪吃蛇

    根据提供的文件信息,我们可以推断出这是一个使用WIN-TC编写的贪吃蛇游戏源代码。WIN-TC是一种在Windows平台上使用的编程工具,主要用于C/C++语言的开发。下面将详细介绍这个程序中的关键技术点。 ### 1. 图形库的...

    flash as3 对战贪吃蛇源代码

    《Flash AS3 对战贪吃蛇源代码解析》 在编程世界中,经典游戏的重制与创新一直是程序员们热衷的课题。这次我们要探讨的是一个基于Flash AS3技术实现的对战版贪吃蛇游戏。这个项目采用了三层架构的设计模式,这在...

    VC++6.0小游戏---贪吃蛇源代码

    **VC++6.0小游戏——贪吃蛇源代码详解** 在计算机编程的世界中,小游戏是初学者们学习和实践编程技巧的绝佳平台。VC++6.0是一款经典的Microsoft Visual C++集成开发环境,它在20世纪90年代末至21世纪初广泛用于...

    贪吃蛇-java源代码

    贪吃蛇是一款经典的电子游戏,其简单易懂的...综上所述,通过研究这个"贪吃蛇-java源代码"项目,不仅可以了解贪吃蛇游戏的运作机制,还可以深入学习Java编程的多个核心概念,对初学者来说是一份非常有价值的教育资源。

    基于Arm-6818开发板的贪吃蛇游戏c++源代码(带项目说明)

    &lt;项目介绍&gt; ...3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

    经典游戏--贪吃蛇的VC源代码

    《贪吃蛇游戏VC++源代码解析》 贪吃蛇,这款简单却充满挑战性的经典游戏,自诞生以来就深受玩家喜爱。它以其独特的游戏机制和无尽的趣味性,吸引了无数编程爱好者进行二次开发和学习。在这个资源中,我们拥有了用...

    PYTHON做贪吃蛇代码

    PYTHON做贪吃蛇代码 PYTHON做贪PYTHONPYTHON做贪吃蛇代码做贪吃蛇代码 吃蛇代码 PYTHON做贪吃蛇代码PYTHON做贪吃蛇代码PYPYTHON做贪吃蛇代码THON做贪吃蛇代码PYTHON做贪吃蛇代码PYTHON做PYTHON做贪吃蛇代码贪吃蛇...

    java-小游戏贪吃蛇实验报告.zip

    java-小游戏贪吃蛇实验报告.zipjava-小游戏贪吃蛇实验报告.zip java-小游戏贪吃蛇实验报告.zipjava-小游戏贪吃蛇实验报告.zip java-小游戏贪吃蛇实验报告.zipjava-小游戏贪吃蛇实验报告.zip java-小游戏贪吃蛇实验...

    54--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    54--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码54--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码54--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码54...

    1--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    1--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码1--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码1--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码1--...

    贪吃蛇 源代码 贪吃蛇源代码

    贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 ...

Global site tag (gtag.js) - Google Analytics