(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图象”的权限)