|
首页 | 名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
全部代码如下: /************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多多哦,只是个大概样子,唬唬人的: )
返回类别: Flash教程 上一教程: FLASH绘制人物侧面的教程 下一教程: Flash视频教程:制作透视文字 您可以阅读与"Flash Actionscript制作贪吃蛇简陋版"相关的教程: · Flash ActionScript制作的一种特别效果动画 · 在Flash中用数组建地图的贪吃蛇游戏 · Flash入门及学ActionScript编程的准确途径 · 网页设计中制作Flash站点的技巧 · Flash ActionScript学习:把AS写在MC上 |
快精灵印艺坊 版权所有 | 首页会员中心在线印刷在线编辑付款方式索取样品设计指南连锁门店 |