本帖最后由 xxx19900915 于 2015-3-4 22:08 编辑
(Feekood语言介绍与习)
http://www.wooyoogame.com/doc/index(学习)
http://www.wooyoogame.com(首页)
http://www.feekood.com/ (开发页面) ——————————
该阶段同样用到http://www.wooyoogame.com资源:
http://www.wooyoogame.com/resource/5399 (3D蝎子)
 ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤ ❤
该阶段的功能:3D模型怪物,能自动的从出生点 匀速的运动到目标集合点(支持多个目标点,逐一移动); 该阶段就一个脚本文件“FoeMoveBase.ais”:
其源码如下: - //引入怪物模型
- Foe1=IncludeAisx(":/Wooyoo/window7/SCORPION.aisx");
- //模型纹理Mipmap化
- CreateMipmap(Foe1.texture);
- //移动数据
- MoveData_North={
- {x:0;z:-46},
- {x:-46;z:-46},
- {x:-46;z:-25},
- {x:0;z:-25},
- {x:0;z:0}};
- FoeMoveBase={
- //怪物数据
- Data:{
- Blood:50;
- Exps:10;
- Grade:1;
- speed:3;
- };
- Action:"STAND";//怪物动作
- x:0;y:0.1;z:0;
- show:false;
- IsHitTest:true;//启动鼠标拾取
- IsHitPass:false; //是否击穿
- state:"";//怪物状态
- MI:0;//记录创建怪物移动点
- Rotation:0;//旋转度
- owner.MoveTargetX:100000; //目标位置X
- owner.MoveTargetZ:100000; //目标位置Z
- MoveTime:0;//记录移动时间
- leng2:0; //记录距离的2次方
- //A==> 为 当A为true时 会每一次刷新都执行
- //怪物移动状态,并且被创建成功
- (owner.state=="Move"&& owner.name!=null)==>
- { owner.state=""; //状态清空
- case(owner.MoveTargetX!=100000&&owner.MoveTargetZ!=100000,
- { owner.Action="RUN"; //设置怪物跑起来
- //计算当前位置与目标位置 的角度,并让怪物旋转方向
- owner.Rotation=Angle2(owner.MoveTargetZ-owner.z,owner.MoveTargetX-owner.x);
- //计算当前位置与目标位置的距离的平方
- owner.leng2=pow(owner.MoveTargetZ-owner.z,2)+pow(owner.MoveTargetX-owner.x,2);
- owner.MoveTime=0;//初始化移动时间
- //根据上述距离 与 自身 速度 计算移动时间
- owner.MoveTime=Sqrt(owner.leng2)/owner.Data.speed*500;
- //怪物X/Z 在计算时间内向目标移动
- owner.x<:"clear"<:{owner.MoveTargetX,owner.MoveTime};
- owner.z<:"clear"<:{owner.MoveTargetZ,owner.MoveTime}<::{
- //<::{};为 在计算时间后才执行
- owner.MI+=1;//下一个点
- //判断下一个点是否存在,
- case($("MoveData_"+owner.FoePosition)->(owner.MI).x!=null,
- { //存在,下一个点赋值给目标点
- owner.MoveTargetX=$("MoveData_"+owner.FoePosition)->(owner.MI).x;
- owner.MoveTargetZ=$("MoveData_"+owner.FoePosition)->(owner.MI).z;
- //并且执行移动
- owner.state="Move";
- },!($("MoveData_"+owner.FoePosition)->(owner.MI).x!=null)),
- { //没有点后 怪物STAND
- owner.Action="STAND";
- };
- };
- });
- };
- //怪物方向 (设计东南西北方向,所以路径也不一样)
- FoePosition:"";
- IsLoaded:=> { //创建成功后执行一次
- case(owner.FoePosition!="",{
- owner.MI=0; //初始下一点 0号点
- //初始化目标点
- owner.MoveTargetX=$("MoveData_"+owner.FoePosition)->0.x;
- owner.MoveTargetZ=$("MoveData_"+owner.FoePosition)->0.z;
- //走起
- owner.state="Move";
- });
- };
- };
- //目前只有North数据。下一章 会完整。继承怪物移动base,以及Foe1蝎子
- //更换怪物,只需要继承不同的怪物
- create({FoePosition:"North";}::FoeMoveBase::Foe1);
- //为有对比,创建3D线段做参考
- lineData=
- {
- type:"line3d";
- Items:{{0;0.1;0;},
- {0,0.1,-46},
- {-46,0.1,-46},
- {-46,0.1,-25},
- {0,0.1,-25},
- {0,0.1,0}};
- Color:{1,1,0,1};
- };
- Create(lineData);
复制代码
效果图:
因为是动态移动的,截图没效果,可以看下面链接:
http://www.feekood.com/?path=:/zhanghao/%E5%BE%AE%E5%8D%9A/%E9%98%B6%E6%AE%B5%E6%80%A7%E8%84%9A%E6%9C%AC/FoeMoveBase.ais 需要安装一个插件:
运行的时候需要装一个插件:(研究了一下,其实就安装了一个“Microsoft Silverlight”以及打开“3D图像”的权限)

|