(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圖象”的權限)