首页 > 下载 > 下载详文:Flash actionscript3.0游戏开发

Flash actionscript3.0游戏开发

发布时间:2010年05月05日 10时27分18秒   属性:程序Web开发 > Adobe    访问次数:71706
字体: 初始 添加收藏 分享给好友
Flash actionscript3.0游戏 开发
Flash 二维游戏思路,文章介绍flash实现二维座标角度,让鼠标点击指向目标点移动,让角色随着鼠标点击目标点,然后向目标点移动,并且显示鼠标点击目标点(焦点),舞台右上角为鼠标坐标显示.
所需要知识点:事件MouseEvent.MOUSE_MOVE、Event.ENTER_FRAME;坐标角度算法Math.atan2、
Math.round,下面是效果(鼠标放入场景中进行移动点击操作)。


准备工作新建flash文件(actionscript 3.0)先建立Mc元件,分别为point(角色)、sX(角色),point导出脚本类(可以参见Actionscript Timer使用、加载元件Actionscript导出(X)勾选择)。

1.显示是鼠标移动坐标;创建TextField用来显示鼠标的x、y的坐标,function moused建立鼠标事件,MouseEvent.MOUSE_MOVE让moused接收,下面是第一步的代码。
ActionScript 代码  复制
//(C)Copyright weisim3.com 05.04.2010 var Xlab:TextField=new TextField(); var Ylab:TextField=new TextField(); function moused(e:MouseEvent):void { //trace("X:"+ mouseX+ "Y:"+ mouseY); Xlab.text="X:"+mouseX; Ylab.text="Y:"+mouseY; Xlab.x=2; Xlab.y=2; Ylab.x=50; Ylab.y=2; addChild(Xlab); addChild(Ylab); } stage.addEventListener(MouseEvent.MOUSE_MOVE,moused);

第一步的代码执行结果 将addChild(Xlab)和addChild(Ylab)是将两个TextField加载在舞台显示出来(红色标头为游戏角色,在此是直接从库中拖放置舞台)。


2.鼠标点击事件,建立鼠标点击点function createPoint事件,在事件中addChild(myPoint)加载myPoint:point显示鼠标点击点,MouseEvent.CLICK点击让createPoint接收(只有点击才能接收), myPoint.x=stage.mouseX; myPoint.y=stage.mouseY;让鼠标的坐标x,y值赋给myPoint:point。第二步代码如下。
ActionScript 代码  复制
//(C)Copyright weisim3.com 05.04.2010 var Xlab:TextField=new TextField(); var Ylab:TextField=new TextField(); function moused(e:MouseEvent):void { //trace("X:"+ mouseX+ "Y:"+ mouseY); Xlab.text="X:"+mouseX; Ylab.text="Y:"+mouseY; Xlab.x=2; Xlab.y=2; Ylab.x=50; Ylab.y=2; addChild(Xlab); addChild(Ylab); } stage.addEventListener(MouseEvent.MOUSE_MOVE,moused); //第二步加入鼠标点击点,鼠标点击将显示myPoint:point,每点击一次将获取新的坐标点 var myPoint:point=new point(); function createPoint(e:MouseEvent):void { myPoint.x=stage.mouseX; myPoint.y=stage.mouseY; addChild(myPoint);//建立目标点 } stage.addEventListener(MouseEvent.CLICK,createPoint);

3.
算法坐标角度算法,建立function run_Follow事件,在事件中进行角度算法用到Math.atan2(myPoint.y-myCharacher_mc.y,myPoint.x-myCharacher_mc.x)得出弧度,Math.round((myRadians*180/Math.PI)),算出角度使角色调转方向,myCharacher_mc.addEventListener(Event.ENTER_FRAME, run_Follow);接收run_Follow事件,而myCharacher_mc.addEventListener(Event.ENTER_FRAME, run_Follow);是放在function createPoint事件中执行,也就是鼠标点击后执行,myCharacher_mc即是角色红标头的舞台实例命名。
ActionScript 代码  复制
//(C)Copyright weisim3.com 05.04.2010 var Xlab:TextField=new TextField(); var Ylab:TextField=new TextField(); function moused(e:MouseEvent):void { //trace("X:"+ mouseX+ "Y:"+ mouseY); Xlab.text="X:"+mouseX; Ylab.text="Y:"+mouseY; Xlab.x=2; Xlab.y=2; Ylab.x=50; Ylab.y=2; addChild(Xlab); addChild(Ylab); } stage.addEventListener(MouseEvent.MOUSE_MOVE,moused); //trace(myCharacher_mc.y,myCharacher_mc.x,myCharacher_mc.rotation); //第二步加入鼠标点击点 var myPoint:point=new point(); function createPoint(e:MouseEvent):void { myPoint.x=stage.mouseX; myPoint.y=stage.mouseY; addChild(myPoint);//建立目标点 //第三步 myCharacher_mc.addEventListener(Event.ENTER_FRAME, run_Follow); trace(myCharacher_mc.y,myCharacher_mc.x,myCharacher_mc.rotation); } stage.addEventListener(MouseEvent.CLICK,createPoint); //第三步 //鼠标点击为物体的目标点(焦点中心),物体移向点击后的目标点 //Math.atan2使用 //Math.round使用 function run_Follow(event:Event):void { // 目标中心点鼠标点击之后. // 向目标点旋转(焦点)Math.atan2(y,x) //角度制与弧度制的相互转换: //弧度 = 角度 * Math.PI / 180 //角度 = 弧度 * 180 / Math.PI var cRadians:Number=Math.atan2(myPoint.y-myCharacher_mc.y,myPoint.x-myCharacher_mc.x);//弧度 var cDegrees:Number = Math.round((cRadians*180/Math.PI)); // 向目标移动(焦点) var yChange:Number=Math.round(myPoint.y-myCharacher_mc.y); var xChange:Number=Math.round(myPoint.x-myCharacher_mc.x); var yMove:Number=Math.round(yChange/20);//移动速度 负数将往相反方向移动 var xMove:Number=Math.round(xChange/20);//移动速度 负数将往相反方向移动 //调整方向向目标点移动 myCharacher_mc.rotation=cDegrees+90; myCharacher_mc.y+=yMove; myCharacher_mc.x+=xMove; }
免费
Flash actionscript3.0游戏开发 (37)
本下载连接不支持第三下载工具打开,请直接点击下载即可
文章版权归属weisim3.com所有,未经书面版权许可同意,不得私自转载(或做修改转载),源文件示例仅供学习使用,更不要出于商业用途或印刷出版发行!否则将追究其相关法律责任,版权联系QQ:729260499。
遺昕 | Weisim3.com 下载许可条款 ( 您必须接受同意才可下载 ) .