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代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码100行Python代码的贪吃蛇小游戏源码...
基于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...
微信小程序练手项目-小程序贪吃蛇小游戏(完整代码)微信小程序练手项目-小程序贪吃蛇小游戏(完整代码)微信小程序练手项目-小程序贪吃蛇小游戏(完整代码)微信小程序练手项目-小程序贪吃蛇小游戏(完整代码)微信小程序练...
Unity和C#-游戏开发-贪吃蛇+源代码工程
《游戏编程笔记-起步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--...
41--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码41--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码41--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码41...
根据提供的文件信息,我们可以推断出这是一个使用WIN-TC编写的贪吃蛇游戏源代码。WIN-TC是一种在Windows平台上使用的编程工具,主要用于C/C++语言的开发。下面将详细介绍这个程序中的关键技术点。 ### 1. 图形库的...
《Flash AS3 对战贪吃蛇源代码解析》 在编程世界中,经典游戏的重制与创新一直是程序员们热衷的课题。这次我们要探讨的是一个基于Flash AS3技术实现的对战版贪吃蛇游戏。这个项目采用了三层架构的设计模式,这在...
**VC++6.0小游戏——贪吃蛇源代码详解** 在计算机编程的世界中,小游戏是初学者们学习和实践编程技巧的绝佳平台。VC++6.0是一款经典的Microsoft Visual C++集成开发环境,它在20世纪90年代末至21世纪初广泛用于...
贪吃蛇是一款经典的电子游戏,其简单易懂的...综上所述,通过研究这个"贪吃蛇-java源代码"项目,不仅可以了解贪吃蛇游戏的运作机制,还可以深入学习Java编程的多个核心概念,对初学者来说是一份非常有价值的教育资源。
<项目介绍> ...3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
《贪吃蛇游戏VC++源代码解析》 贪吃蛇,这款简单却充满挑战性的经典游戏,自诞生以来就深受玩家喜爱。它以其独特的游戏机制和无尽的趣味性,吸引了无数编程爱好者进行二次开发和学习。在这个资源中,我们拥有了用...
PYTHON做贪吃蛇代码 PYTHON做贪PYTHONPYTHON做贪吃蛇代码做贪吃蛇代码 吃蛇代码 PYTHON做贪吃蛇代码PYTHON做贪吃蛇代码PYPYTHON做贪吃蛇代码THON做贪吃蛇代码PYTHON做贪吃蛇代码PYTHON做PYTHON做贪吃蛇代码贪吃蛇...
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...
1--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码1--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码1--[贪吃蛇].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码1--...
贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 贪吃蛇源代码贪吃蛇 源代码 ...