(Feekood语言介绍与习)
http://www.wooyoogame.com/doc/index(学习)
http://www.wooyoogame.com(首页)
http://www.feekood.com/ (开发页面)

——————————
上一篇介绍3D炮塔攻击了。
这一篇介绍3D炮塔攻击后怪物血量减少/死亡。
效果图:

源码链接: http://pan.baidu.com/s/1kT7mCAV 密码: 1oyv


修改原“TurretMesh.ais”脚本

//引入怪物模型
Foe1=IncludeAisx(":/Wooyoo/window7/SCORPION.aisx");
Foe2=IncludeAisx(":/Wooyoo/dosdos/BEAR.aisx");
Foe3=IncludeAisx(":/Wooyoo/window7/CRYPTFIEND.aisx");
//模型纹理Mipmap化
CreateMipmap(Foe1.texture);
CreateMipmap(Foe2.texture);
CreateMipmap(Foe3.texture);
// 引入移动点数据
Include("MoveData.ais");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; //目标位置Xowner.MoveTargetZ:100000; //目标位置ZMoveTime: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)),{  //没有点后 怪物STANDowner.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";}); };IsHitT:false;//是否进入生命塔标记IsHitTarget:false;//是否碰到生命塔targetName:"";//生命塔名称IsUpdated:=>  //每一吃刷新 都判断是否碰到生命塔{   //判断怪物是否存在,以及生命塔是否存在、碰撞。 case(!(owner.IsHitT)&&owner.targetName!=""&&(!owner.clearOneself),{   //碰撞生命塔后 Hit  返回  true-falseowner.IsHitTarget=Hit(owner.targetName,owner.name);});};//碰撞到生命塔IsHitTarget:->{    owner.state="";//怪物状态清空owner.Action="STAND";//怪物STAND//把怪物从怪物集中移除$("FoePanel").FoeAssemble>>>owner.name;//怪物1S内向上移动owner.y<:{owner.y+9,1000}<::{owner.state="success"; //怪物成功到达owner.clearOneself=true;//清除自己};owner.isHitT=true;//标记以及到达};Die:false; //死亡属性Die:->{  //死亡触发   //未成功到达生命塔case(owner.Die==true&&owner.state!="success",{ //移除怪物$("FoePanel").FoeAssemble>>>owner.name;owner.XXX=owner.x;owner.ZZZ=owner.z;//怪物跳一下动作owner.x<:"clear"<:{owner.XXX,1}; owner.z<:"clear"<:{owner.ZZZ,1};//动作不循环owner.IsLoop=false;  owner.Rotation=Rand(0,360);owner.ProbRandxy=ProbRand(50,0,50,1);case(owner.ProbRandxy==0,{owner.z<:{owner.z,owner.z-2,500};},owner.ProbRandxy==1,{owner.x<:{owner.x,owner.x-2,500};});owner.y<:{0,1,100};owner.y<:{1,0,350};owner.Action="MOUNTSWIMSPRINT";//慢慢消失owner.interim1=0;owner.interim1<:{0,1,2000}<::{owner.y<:{0,-0.5,3000}};owner.interim2=0;owner.interim2<:{0,1,5000}<::{owner.clearOneself=true;};});};  //随时检查血量BloodDieTab:true;(owner.Data.Blood<=0&&owner.BloodDieTab)==>{//血量为0后停止检查owner.BloodDieTab=false;//触发怪物死亡owner.Die=true;};//消除自己clearOneself:false;clearOneself:->{Clear(owner.name); };//等级改变后 改变怪物属性Grade:0;Grade:->{owner.Data.Blood=(((owner.Grade-1)*50)+50);//血量owner.Data.Exps=(((owner.Grade-1)*5)+10);//加钱owner.Data.Grade=owner.Grade;//等级};
};

3D塔防游戏实现 5.2 3D怪物死亡(Feekood语言)相关推荐

  1. 3D塔防游戏实现 4.2 3D怪物连续刷新(Feekood语言)

    (Feekood语言介绍与习) http://www.wooyoogame.com/doc/index(学习) http://www.wooyoogame.com(首页) http://www.fee ...

  2. 十大iOS塔防游戏评点

    塔防游戏,即炮塔防御(Tower Defence,TD)游戏的简称.炮塔防御游戏起源于PC时代,有不少移动平台上的塔防游戏都是从PC游戏改编而来.现在除了单纯的建造炮塔防御怪物的传统模式(其中又包括固 ...

  3. unity塔防游戏怪物转向_Unity官方新手游戏项目推荐合集

    Unity官方新手游戏项目推荐合集 今天给同学们介绍一些Unity官方发布过的一些游戏项目,这些项目都简化了游戏开发的入门学习过程,可以快速地制作出游戏,适合新手入门体验,下面就带同学们看一看: Un ...

  4. IOS塔防游戏《坦克对大炮》的开发设计记录

    IOS塔防游戏<坦克对大炮>的开发设计记录 引子 游戏已经在App Store上线几个月了,一直很想写点什么记录一下.真要写的时候,却又发现无从下笔没啥好写的.在2012年进入IOS,对于 ...

  5. 超人气塔防游戏:气球塔防6 for Mac(v26.2.4058中文版)

    气球塔防6中文版Bloons TD 6是一款超人气塔防游戏,气球塔防6中文版延续前作的玩法的基础上进行创新和升级,丰富的游戏场景和完善的武器.道具系统使游戏更具趣味性和挑战性,更有关卡等你来体验,还等 ...

  6. 【HMS Core案例分享】华为分析 X 江湖游戏 | 揭秘塔防游戏的增长秘籍

    江湖游戏是一家集网络游戏发行.运营和服务于一体的公司,于2018年成立,是国内新兴的游戏发行商之一.江湖游戏凭借着3D欧美卡通塔防巨作<塔塔帝国>,以及诙谐幽默的<泡面三国>, ...

  7. (译)如何使用cocos2d制作一个塔防游戏:引子

    原文链接地址:http://www.iphonegametutorials.com/2011/04/11/cocos2d-game-tutorial-how-to-build-a-tower-defe ...

  8. 塔防游戏的路径寻找算法分析

    在塔防游戏中,有很多敌人都是向着同一目标前进的.在众多塔防游戏当中,有一条或几条预定好的路径.在一些塔防游戏中,比如经典的<Desktop Tower Defense>,你可以将塔放在地图 ...

  9. 用Unity开发一款塔防游戏(一):攻击方设计

    大家好.偶尔想起了这个手把手教学的.但现已长满杂草的坑,还是来挖几铲子. 这一期的游戏是最常见的类型之一--塔防. 塔防游戏相信大家并不陌生,几个主要元素如下: 1.敌方士兵 2.我方防御塔 3.我方 ...

最新文章

  1. 创业星光论坛(上):汇源是否应在万荣建厂
  2. 实验2(第二章课后习题)
  3. ITK:创建Sobel内核
  4. PIE SDK剔除栅格块算法
  5. python声音信号调制_用python产生正弦波和PWM信号产生脉冲幅度调制
  6. java 常量折叠_深入理解Java虚拟机之早期编译器优化
  7. 对mysql进行压力测试_mysqlslap对mysql进行压力测试
  8. ESXi 5.1 安装 Mac OSX Lion 10.7
  9. 【BottomBar】Android炫酷的底部切换
  10. C++ windy数
  11. verilog使用1bit全加器实现4bit全加器【行波进位法】
  12. STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读
  13. word html 无批注,Word怎么修改成无批注状态
  14. Android Studio Electric Eel 正式版下载地址
  15. 使用httpclient进行 Http get请求带参数cookie
  16. IKEv2的认证数据生成过程
  17. Django 运行报错 Manager isnt accessible via Category instances
  18. php 网站加密提示购买序列号,恭喜您!序列号购买成功!
  19. 论文笔记:See Better Before Looking Closer: WS-DAN for Fine-Grained Visual Classification
  20. 人人网遭监管约谈,传统互联网公司能否借区块链弯道超车?

热门文章

  1. Java飞机大战小游戏练习
  2. 如何用Python投机倒把几天“暴富”
  3. ORA-28000:账户已被锁定
  4. kingcms 5.0 漏洞
  5. EasyNVS摄像机公网全终端无插件网页摄像机直播管理服务运行出现“请求服务不存在或已停止”
  6. Java并发编程-无锁CAS与Unsafe类及其并发包Atomic
  7. python共享文件协同编辑_那些可多人协作编辑的在线文档工具
  8. 常用电源管理稳压IC
  9. JAVA将图片转成Base64
  10. 逻辑运算是计算机实现计算器基础,第1章__计算机的发展与运算基础.ppt