3D塔防游戏实现 4.1 怪物3D空间自动移动(Feekood语言)

(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模型怪物,能自动的从诞生点 匀速的运动到目标集合点(支持多个目标点,逐1移动);

该阶段就1个脚本文件“FoeMoveBase.ais”:
其源码以下:

//引入怪物模型
Foe1=IncludeAisx(":/Wooyoo/window7/SCORPION.aisx");
//模型纹理Mipmap化
CreateMipmap(Foe1.texture);
//移动数据
MoveData_North={
{x:0;z:⑷6},
{x:-46;z:⑷6},
{x:-46;z:⑵5},
{x:0;z:⑵5},
{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;//下1个点
//判断下1个点是不是存在,
case($("MoveData_"+owner.FoePosition)->(owner.MI).x!=null,
{ //存在,下1个点赋值给目标点
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";
};
};
});
};
//怪物方向 (设计东南西北方向,所以路径也不1样)
FoePosition:"";
IsLoaded:=> { //创建成功后履行1次
case(owner.FoePosition!="",{
owner.MI=0; //初始下1点 0号点
//初始化目标点
owner.MoveTargetX=$("MoveData_"+owner.FoePosition)->0.x;
owner.MoveTargetZ=$("MoveData_"+owner.FoePosition)->0.z;
//走起
owner.state="Move";
});
};
};
//目前只有North数据。下1章 会完全。继承怪物移动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

需要安装1个插件:
运行的时候需要装1个插件:(研究了1下,其实就安装了1个“Microsoft Silverlight”和打开“3D图象”的权限)
这里写图片描述

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » 3D塔防游戏实现 4.1 怪物3D空间自动移动(Feekood语言)

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡