3D塔防游戏实现 5.2 3D怪物死亡(Feekood语言)
(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语言)相关推荐
- 3D塔防游戏实现 4.2 3D怪物连续刷新(Feekood语言)
(Feekood语言介绍与习) http://www.wooyoogame.com/doc/index(学习) http://www.wooyoogame.com(首页) http://www.fee ...
- 十大iOS塔防游戏评点
塔防游戏,即炮塔防御(Tower Defence,TD)游戏的简称.炮塔防御游戏起源于PC时代,有不少移动平台上的塔防游戏都是从PC游戏改编而来.现在除了单纯的建造炮塔防御怪物的传统模式(其中又包括固 ...
- unity塔防游戏怪物转向_Unity官方新手游戏项目推荐合集
Unity官方新手游戏项目推荐合集 今天给同学们介绍一些Unity官方发布过的一些游戏项目,这些项目都简化了游戏开发的入门学习过程,可以快速地制作出游戏,适合新手入门体验,下面就带同学们看一看: Un ...
- IOS塔防游戏《坦克对大炮》的开发设计记录
IOS塔防游戏<坦克对大炮>的开发设计记录 引子 游戏已经在App Store上线几个月了,一直很想写点什么记录一下.真要写的时候,却又发现无从下笔没啥好写的.在2012年进入IOS,对于 ...
- 超人气塔防游戏:气球塔防6 for Mac(v26.2.4058中文版)
气球塔防6中文版Bloons TD 6是一款超人气塔防游戏,气球塔防6中文版延续前作的玩法的基础上进行创新和升级,丰富的游戏场景和完善的武器.道具系统使游戏更具趣味性和挑战性,更有关卡等你来体验,还等 ...
- 【HMS Core案例分享】华为分析 X 江湖游戏 | 揭秘塔防游戏的增长秘籍
江湖游戏是一家集网络游戏发行.运营和服务于一体的公司,于2018年成立,是国内新兴的游戏发行商之一.江湖游戏凭借着3D欧美卡通塔防巨作<塔塔帝国>,以及诙谐幽默的<泡面三国>, ...
- (译)如何使用cocos2d制作一个塔防游戏:引子
原文链接地址:http://www.iphonegametutorials.com/2011/04/11/cocos2d-game-tutorial-how-to-build-a-tower-defe ...
- 塔防游戏的路径寻找算法分析
在塔防游戏中,有很多敌人都是向着同一目标前进的.在众多塔防游戏当中,有一条或几条预定好的路径.在一些塔防游戏中,比如经典的<Desktop Tower Defense>,你可以将塔放在地图 ...
- 用Unity开发一款塔防游戏(一):攻击方设计
大家好.偶尔想起了这个手把手教学的.但现已长满杂草的坑,还是来挖几铲子. 这一期的游戏是最常见的类型之一--塔防. 塔防游戏相信大家并不陌生,几个主要元素如下: 1.敌方士兵 2.我方防御塔 3.我方 ...
最新文章
- 创业星光论坛(上):汇源是否应在万荣建厂
- 实验2(第二章课后习题)
- ITK:创建Sobel内核
- PIE SDK剔除栅格块算法
- python声音信号调制_用python产生正弦波和PWM信号产生脉冲幅度调制
- java 常量折叠_深入理解Java虚拟机之早期编译器优化
- 对mysql进行压力测试_mysqlslap对mysql进行压力测试
- ESXi 5.1 安装 Mac OSX Lion 10.7
- 【BottomBar】Android炫酷的底部切换
- C++ windy数
- verilog使用1bit全加器实现4bit全加器【行波进位法】
- STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读
- word html 无批注,Word怎么修改成无批注状态
- Android Studio Electric Eel 正式版下载地址
- 使用httpclient进行 Http get请求带参数cookie
- IKEv2的认证数据生成过程
- Django 运行报错 Manager isnt accessible via Category instances
- php 网站加密提示购买序列号,恭喜您!序列号购买成功!
- 论文笔记:See Better Before Looking Closer: WS-DAN for Fine-Grained Visual Classification
- 人人网遭监管约谈,传统互联网公司能否借区块链弯道超车?
热门文章
- Java飞机大战小游戏练习
- 如何用Python投机倒把几天“暴富”
- ORA-28000:账户已被锁定
- kingcms 5.0 漏洞
- EasyNVS摄像机公网全终端无插件网页摄像机直播管理服务运行出现“请求服务不存在或已停止”
- Java并发编程-无锁CAS与Unsafe类及其并发包Atomic
- python共享文件协同编辑_那些可多人协作编辑的在线文档工具
- 常用电源管理稳压IC
- JAVA将图片转成Base64
- 逻辑运算是计算机实现计算器基础,第1章__计算机的发展与运算基础.ppt