频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发工具应用教程 -> Flash教程 -> AS贪吃蛇简陋版

AS贪吃蛇简陋版

作者:未知  来源:转载  发布时间:2005-8-18 21:05:40  发布人:acx

减小字体 增大字体

全部代码如下:

/************2005.5**************/
/*********贪吃蛇简陋版************/
/***********寒冰(胡乱编写)********/
var s_x = 0;
var s_y = 0;
var dir = [[-1, 0], [0, -1], [1, 0], [0, 1]];
//四个方向
var _dir;
var c_x = (Stage.width-256)/2;
var c_y = (Stage.height-256)/2;
var map;
var speed;
var level = 1;
var child_num;
var Child;
var snake_arr;
init();
function init() {
speed = 15;
child_num = 1;
snake_arr = [];
DrawOutRound();
//画外框
DrawMap();
//画地图
SnakeRun();
//蛇移动
MakeWall();
//创建障碍物
MakeChild();
//创建食物(后来变成蛇身)
createTextField("info", getNextHighestDepth(), 30, 350, 400, 20);
createTextField("status", getNextHighestDepth(), 320, 370, 100, 20);
status.text = "状态:playing";
info.text = "[用方向键控制方向,dead后请点鼠标重新开始]____寒冰制造";
}
function DrawBox(name, color, w, h) {
//画方块
var _b = createEmptyMovieClip(name, getNextHighestDepth());
with (_b) {
lineStyle(0);
beginFill(color);
lineTo(w, 0);
lineTo(w, h);
lineTo(0, h);
endFill();
}
return _b;
}
function DrawOutRound() {
DrawBox("outround", 0xffffff, 400, 400);
}
function DrawMap() {
var _box = DrawBox("box", 0xffffff, 16, 16);
_box._visible = false;
map = [];
for (var i = 0; i<16; i++) {
map[i] = [];
for (var j = 0; j<16; j++) {
map[i][j] = 0;
_box.duplicateMovieClip("_map"+i+j, getNextHighestDepth(), {_x:c_x+j*16, _y:c_y+i*16});
}
}
//trace(map)
}
function MakeSnake() {
var Snake = DrawBox("snake", 0x000000, 16, 16);
snake_arr.push(snake);
Snake.x = s_x;
Snake.y = s_y;
//map[Snake.y][Snake.x] = 1;
Snake._x = c_x+s_x*16;
Snake._y = c_y+s_y*16;
return Snake;
}
function SnakeRun() {
var S = MakeSnake();
var i = 0;
_dir = dir[3];
SnakeControl();
S.onEnterFrame = function() {
if (++i>100/speed) {
ChildRun();
i = 0;
if (map[this.y+_dir[1]][this.x+_dir[0]] == 0) {
} else if (map[this.y+_dir[1]][this.x+_dir[0]] == 8) {
speed++;
map[this.y+_dir[1]][this.x+_dir[0]] == 0;
snake.swapDepths(getNextHighestDepth());
Child._name = Child._name.substr(1);
snake_arr.push(Child);
MakeChild();
} else {
status.text = "状态:over";
delete this.onEnterFrame;
return;
}
this.x += _dir[0];
this.y += _dir[1];
this._x = c_x+16*this.x;
this._y = c_y+16*this.y;
}
};
//trace(S);
}
function SnakeControl() {
var obj = {};
obj.onKeyDown = function() {
var key = Key.getCode();
switch (key) {
case 37 :
_dir = dir[0];
break;
case 38 :
_dir = dir[1];
break;
case 39 :
_dir = dir[2];
break;
case 40 :
_dir = dir[3];
}
};
Key.addListener(obj);
}
function RndArr() {
//随机乱数,为了取得随机的障碍物的位置,不过这里用随机是为了偷懒,应该固定位置的.
var arr = [];
for (var i = 1; i<256; i++) {
arr[i-1] = i;
}
arr.sort(function () {
return random(2) ? 1 : -1;
});
return arr;
}
function MakeChild() {
var rgb = 0x0000ff;
Child = DrawBox("_child"+child_num, rgb, 16, 16);
Child._alpha = 0;
Child.onEnterFrame = function() {
if ((this._alpha += 5)>100) {
delete this.onEnterFrame;
}
};
do {
var x = random(16);
var y = random(16);
} while (map[y][x] != 0 or (x == 0 and y == 0));
Child.createTextField("txt", Child.getNextHighestDepth(), 0, 0, 16, 16);
//食物上的数字
Child.txt.textColor = "0xffffff";
Child.txt.text = child_num;
map[y][x] = 8;
Child._x = c_x+x*16;
Child._y = c_y+y*16;
child_num++;
}
function MakeWall() {
var _arr = RndArr();
for (var i = 0; i<level*10; i++) {
var x = _arr[i]%16;
var y = int(_arr[i]/16);
map[y][x] = 1;
var Wall = DrawBox("wall"+i, 0xff0000, 16, 16);
Wall._x = c_x+x*16;
Wall._y = c_y+y*16;
}
}
function ChildRun() {
for (var j in snake_arr) {
map[snake_arr[j].y][snake_arr[j].x] = 0;
}
for (var i = child_num; i>0; i--) {
var last_child = this["child"+(i-1)];
if (last_child == child0) {
last_child = snake;
}
this["child"+i].x = last_child.x;
this["child"+i].y = last_child.y;
map[this["child"+i].y][this["child"+i].x] = 1;
this["child"+i]._x = c_x+this["child"+i].x*16;
this["child"+i]._y = c_y+this["child"+i].y*16;
}
}
onMouseDown = function () {
// 鼠标点击进行刷新,重新开始
for (var i in this) {
if (this[i].__proto__ == MovieClip.prototype) {
this[i].removeMovieClip();
} else if (this[i].__proto__ == TextField.prototype) {
this[i].removeTextField();
}
}
init();
}

//晚上边玩边弄的,居然写了这么多.bug多多哦,只是个大概样子,唬唬人的: )
点击浏览该文件
http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash&#39; type='application/x-shockwave-flash' width=400 height=300 designtimesp=6737>/Upload/2005-05/20055465159343.swf


将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
上一篇文章:动态更新载入选择题
下一篇文章:随机排列的链接系统
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· PHP教程.应用实例6
· 中奖诈骗瞄准网上热门社..
· 滑动块控制导入文本的缓..
· SQL数据操作基础(中级) ..
· 大型社区网站提高用户体..
· .NET框架类览胜(下篇)..
· Google新闻业务麻烦不断..
· Flash MX 2004 ActionSc..
· Photoshop制作鹅卵石路面..
· Access使用宏控制程序
· Windows 2000下安装PHP4..
· base64编码、解码函数
· 教你如何在linux下建立m..
· 不能频繁执行DBCC SHRIN..
· 实例演练ASP+XML编程(3)..
· 谷歌把搜索比作马拉松 称..
相关文章
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号