求flash贪吃蛇AS3.0游戏源文件

普通的正常的贪吃蛇就可以了,非常感谢!!!desert5200+@+qq.com... 普通的正常的贪吃蛇就可以了,非常感谢!!!desert5200+@+qq.com 展开
 我来答
小小zzq
2013-09-09 · 超过27用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:65.6万
展开全部
写了一个简易版贪吃蛇代码,供你参考。
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.geom.Point;

public class Main extends Sprite
{
private var mapArray:Array = [];
private var items:Array = [];
private var startX:uint = 5;
private var startY:uint = 5;
private var mapWidth:uint = 20;
private var mapHeight:uint = 20;
private var itemWidth:int = 15;
private var itemHeight:int = 15;
private var enemyX:int = startX;
private var enemyY:int = startY;
private var snakeArray:Array = [[startX,startY]];
private var directionX:int = 1;
private var directionY:int = 0;
public function Main()
{
stage.frameRate = 2;

graphics.lineStyle(1);
graphics.drawRect(0,0,mapWidth*itemWidth,mapHeight*itemHeight);

for(var i:int = 0;i<mapHeight;i++)
{
items[i] = [];
mapArray[i] = [];
for(var k:int = 0;k<mapWidth;k++)
{
var spr:Sprite = new Sprite;
addChild(spr);
spr.graphics.beginFill(0);
spr.graphics.drawRect(0,0,itemWidth,itemHeight);
spr.x = k*itemWidth;
spr.y = i*itemHeight;
spr.visible = false;
items[i][k] = spr;
mapArray[i][k] = 0;
}
}
while(enemyX == startX && enemyY == startY)
{
enemyX = Math.random()*mapWidth;
enemyY = Math.random()*mapHeight;
}
mapArray[startY][startX] = 1;
items[startY][startX].visible = true;
items[enemyY][enemyX].visible = true;
stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
addEventListener(Event.ENTER_FRAME,onEnterFrame);
}
protected function onKeyDown(event:KeyboardEvent):void
{
switch(event.keyCode)
{
case 38:///上
case 87:///W
directionX = 0;
directionY = -1;
break;
case 40:///下
case 83:///S
directionX = 0;
directionY = 1;
break;
case 37:///左
case 65:///A
directionX = -1;
directionY = 0;
break;
case 39:///右
case 68:///D
directionX = 1;
directionY = 0;
break;
}
}
protected function onEnterFrame(event:Event):void
{
var addX:int = snakeArray[0][0]+directionX;
var addY:int = snakeArray[0][1]+directionY;
if(addX >= mapWidth || addX < 0 || addY >= mapHeight || addY < 0 || mapArray[addY][addX])
{
stage.removeEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
removeEventListener(Event.ENTER_FRAME,onEnterFrame);
trace("======== GAME OVER ========");
}else if(addX == enemyX && addY == enemyY)
{
mapArray[addY][addX] = 1;
snakeArray.unshift([addX,addY]);
var isFail:Boolean = true;
while(isFail)
{
enemyX = Math.random()*mapWidth;
enemyY = Math.random()*mapHeight;
isFail = false;
for(var i:int = 0;i<snakeArray.length;i++)
{
if(enemyX == snakeArray[i][0] && enemyY == snakeArray[i][1])
{
isFail = true;
break;
}
}
}
items[enemyY][enemyX].visible = true;
stage.frameRate++;
}else
{
snakeArray.unshift([addX,addY]);
mapArray[addY][addX] = 1;
items[addY][addX].visible = true;
var tail:Array = snakeArray.pop();
mapArray[tail[1]][tail[0]] = 0;
items[tail[1]][tail[0]].visible = false;
}
}
}
}
研信通
2024-11-28 广告
北京研信通科技公司是集研发、生产、销售、服务于一体的高新技术企业,自成立以来,一直致力于动作捕捉系统的研发、生产和销售,其产品广泛应用于影视动画、游戏开发、虚拟现实、机器人研发、康复医疗等领域,可满足不同行业客户的需求。研信通科技公司经过多... 点击进入详情页
本回答由研信通提供
开心AI人生
2013-09-08
知道答主
回答量:6
采纳率:0%
帮助的人:3万
展开全部
那个只能在手机上完
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冥王mc
2013-09-08
知道答主
回答量:13
采纳率:0%
帮助的人:1.8万
展开全部
  • .......木有

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式