网页私服论坛

 找回密码
 立即注册
搜索
查看: 102772|回复: 0

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

[复制链接]

1

主题

7

帖子

37

积分

新手上路

Rank: 1

积分
37
发表于 2015-3-5 17:03:02 | 显示全部楼层 |阅读模式
本帖最后由 xxx19900915 于 2015-3-4 22:08 编辑

(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模型怪物,能自动的从出生点 匀速的运动到目标集合点(支持多个目标点,逐一移动);
该阶段就一个脚本文件“FoeMoveBase.ais”:
其源码如下:
    //引入怪物模型
    Foe1=IncludeAisx(":/Wooyoo/window7/SCORPION.aisx");
    //模型纹理Mipmap化
    CreateMipmap(Foe1.texture);
    //移动数据
    MoveData_North={
        {x:0;z:-46},
        {x:-46;z:-46},
        {x:-46;z:-25},
        {x:0;z:-25},
        {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.x0.x;
                owner.MoveTargetZ=$("MoveData_"+owner.FoePosition)->0.z;
                //走起
                owner.state="Move";
            });
         };
    };
    //目前只有North数据。下一章  会完整。继承怪物移动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
需要安装一个插件:
运行的时候需要装一个插件:(研究了一下,其实就安装了一个“Microsoft Silverlight”以及打开“3D图像”的权限)



网页游戏私服论坛 http://www.c14.com

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网页私服论坛  

GMT+8, 2019-7-19 15:57 , Processed in 0.316441 second(s), 29 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表