游戏《贪食蛇》的制作
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-11
这是个纯脚本的贪食蛇,仅供交流学习 点击浏览该文件 源文件 点击浏览该文件 贪食蛇的设计 首先明确制订基本的规则 1。蛇头不能咬蛇身--蛇头不能和蛇身发生碰撞,包括不能突然反方向运动 2。蛇头不能碰障碍--撞上就gameover,包括不能走出游戏区域 3。蛇吃了食物会增加长度,食物吃掉一个才会产生新的 4。蛇只有上下左右四个行走方向 根据规则,很快得出基本的程序模块结构 1。初始化,场景、障碍和基本的蛇(初始长度,初始行走方向) 2。在场景中放置食物,吃完一个再出现下一个,吃一个食物蛇身增加一节,食物不能和障碍重合 3。蛇的运动,一节跟一节 4。行走中检测蛇头不能和障碍、蛇身碰撞,也不能超出游戏区域 5。键盘的监听,控制蛇的运动,及改变游戏状态 好了,按照这个思路,一步步把游戏给建起来吧 下面这个是根据这个思路用纯脚本编制的贪食蛇,仅供学习交流,copy到主场景第一帧就ok了。 var sl=3; //蛇起始节 var wallnum=20; //障碍数 var sp=10; var fx=sp; var fy=0; var en=0; var go=false; //蛇是否还能走的标志 var turn=0; var gameover=false; //游戏结束,重新初始化标志 //================================画方块函数 drawbox=function(obj,w,h,mycolor){ with(obj){ lineStyle(1,0,100); beginFill(mycolor,100); moveTo(0,0); lineTo(w,0); lineTo(w,h); lineTo(0,h); lineTo(0,0); endFill(); } } //=================================画圆函数 drawcircle=function(obj,r,mycolor){ var rr,radius; with(obj){ lineStyle(0,0,0); beginFill(mycolor,100); moveTo(2*r,r); for(rr=1;rr<=36;rr++){ radius=rr*10*Math.PI/180; lineTo(r*Math.cos(radius)+r, r*Math.sin(radius)+r); }; endFill(); } } //=============================================================生成背景mc _root.createEmptyMovieClip("bg",1); drawbox(bg,500,300,0x0099cc); bg._x=25;bg._y=30; //=============================================================初始化函数 beginclear=function(){ for(i=0;i fy=0; en=0; go=false; //=================================产生随机的障碍物(实际的游戏制作中应该定义障碍,因为随机可能出现封闭的区域) for(i=0;i drawbox(this["wall"+i],20,20,0xcc3300); this["wall"+i]._x=bg._x+20*random(25);this["wall"+i]._y=bg._y+20*(1+random(14)); } //==================================产生初始的三节蛇 sl=3; for(i=0;i if(i>0){ rcolor=0xffff00} else {rcolor=0x99ffff}; drawcircle(this["sn"+i],4,rcolor); this["sn"+i]._x=bg._x;this["sn"+i]._y=bg._y; } } beginclear(); //初始化场景 //================================================================蛇的运动及检测 onEnterFrame=function(){ if(go){ //是否还能动,能动就执行下面的 //-------------------- if(en==0){ //有没食物,没有就产生个食物 ex=bg._x+20*random(25);ey=bg._y+20*random(15);nowall=true; for(i=0;i } if(nowall){ en=1;_root.createEmptyMovieClip("ee",1000); //放置食物,食物标志置1 drawcircle(ee,8,0x00ff00);drawbox(ee,4,4,0xff0000);ee._x=ex;ee._y=ey; } } //--------------------蛇的移动,后一节跑前一节的位置上去,蛇头部向控制方向行走 for(j=sl-1;j>0;j--){ t=j-1;this["sn"+j]._x=this["sn"+t]._x;this["sn"+j]._y=this["sn"+t]._y; } sn0._x+=fx;sn0._y+=fy; //--------------------如果食物被蛇头碰到,食物就消失,食物标志清 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Flash实用编程五---下雨动画的制作下一篇: 加载库中的文件
关于游戏《贪食蛇》的制作的所有评论