欢迎光临散文网 会员登陆 & 注册

1.DOF_NUT_Develop_UI_Draw_2

2023-08-21 14:10 作者:陪看书的小白  | 我要投稿

上一节,我们了解了,UI_Draw读取三种数据类型的方法,来实现给UI界面传值的方式。

这一节,我们研究,如何通过这三种读取数据类型的方法,实现绘制obj各个信息参数的数据到界面上和实时检测obj各个信息参数。

实现效果:

function data_show(obj)

{

 local stage = sq_GetGlobaludpModuleStage();//得到全局udp模块

    local dungeon = sq_GetDungeonByStage(stage);//得到全局udp模块阶段的当前副本

    local dungeonIndex = sq_GetDuegonIndex(dungeon);//得到当前副本的副本ID

    local mapIndex = sq_GetMapIndex(stage);//得到得到全局模块阶段的当前地图ID

    local skillIndex = obj.getThrowIndex();//得到释放技能ID

    local attackIndex = obj.getAttackIndex();//得到obj攻击技能的ID,常常普攻时候使用

    local buffSkillIndex = obj.getBuffSkillIndex();//得到obj的buff技能的ID

    local throwState = obj.getThrowState();//得到obj释放技能的状态

    local state = obj.sq_GetState();//得到obj的人物状态

    local SubState = obj.getSkillSubState();//得到obj释放技能的子状态

   local objectManager = obj.getObjectManager();//得到obj管理器

   local objectcount=0;//设置默认对象数量为0

   objectcount = objectManager.getCollisionObjectNumber();/用obj管理器去得到控制对象的个数

  local AiCharacter = 0;//设置默认ai对象数量为0,

    local Monster = 0;//设置默认怪物数量为0

    local Character =0;//设置默认角色数量为0

    local PASSIVE = 0;//设置默认被动对象数量为0

    for(local i=0;i<objectcount;i++)//设置循环便利每一个obj对象

    {

        local object = objectManager.getCollisionObject(i);//通过obj管理器得到第i个控制类对象

        if(object && obj.isEnemy(object) && object.isObjectType(OBJECTTYPE_MONSTER))

        {//判断第i个控制类对象是否存在

//判断第i个控制类对象是否是敌人

//判断第i个控制类对象类型是否是怪物对象类型

            Monster++;//如果以上三个条件都成立,怪物数量+1

        }

        else if(object && sq_IsAiCharacter(sq_GetCNRDObjectToActiveObject(object)))

        //判断第i个控制类对象是否存在

//判断第i个控制类对象是否是AI对象

    AiCharacter++;//如果以上两个条件都成立,AI对象数量+1

        else if(object && object.isObjectType(OBJECTTYPE_PASSIVE))

        {

    //判断第i个控制类对象是否存在

//判断第i个控制类对象是否是被动对象

            PASSIVE++;//如果以上两个条件都成立,被动对象数量+1

        }

        else if(object && object.isObjectType(OBJECTTYPE_CHARACTER)&&!sq_IsAiCharacter(sq_GetCNRDObjectToActiveObject(object)))

    //判断第i个控制类对象是否存在

//判断第i个控制类对象是否不是AI对象

//判断第i个控制类对象是否是激活类对象

        {

            Character++;//如果以上三个条件都成立,玩家对象数量+1

        }

    }

bilixiaobai_addstringUI(obj,"obj"+" "+objectcount.tostring(),10,10,10,10,0);//将obj数量绘制到界面上

bilixiaobai_addstringUI(obj,"aicharacter"+" "+Character.tostring(),10,10,30,10,0);//将ai数量绘制到界面上

bilixiaobai_addstringUI(obj,"monster"+" "+Monster.tostring(),10,10,50,10,0);//将怪物数量绘制到界面上

bilixiaobai_addstringUI(obj,"passive"+" "+PASSIVE.tostring(),10,10,70,10,0);//将被动对象数量绘制到界面上

//bilixiaobai_addstringUI(obj,"mou_y_pos ",10,10,160,10,0);//将被动对象数量绘制到界面上

bilixiaobai_addstringUI(obj,"dgn_id"+" "+dungeonIndex.tostring(),10,10,180,10,0);//将副本ID绘制到界面上

bilixiaobai_addstringUI(obj,"map_id"+" "+mapIndex.tostring(),10,10,200,10,0);//将地图ID绘制到界面上

bilixiaobai_addstringUI(obj,"myweight"+" "+sq_GetObjectWeight(obj).tostring()+" myheight"+" "+sq_GetObjectHeight(obj).tostring()+" "+"mywidth"+" "+sq_GetWidthObject(obj).tostring(),10,10,220,10,0);//将我的重量,我的高度,我的宽度绘制到界面上

bilixiaobai_addstringUI(obj,"my_x_pos"+" "+sq_GetXPos(obj).tostring()+" mou_x_pos ",10,10,240,10,0);//将我的x坐标绘制到界面上

bilixiaobai_addstringUI(obj,"my_y_pos"+" "+sq_GetYPos(obj).tostring()+" mou_x_pos ",10,10,260,10,0);//将我的y坐标绘制到界面上

bilixiaobai_addstringUI(obj,"my_z_pos"+" "+sq_GetXPos(obj).tostring(),10,10,280,10,0);//将我的z坐标绘制到界面上

bilixiaobai_addstringUI(obj,"currentskill"+" "+obj.getCurrentSkillIndex().tostring()+" buffskill"+" "+buffSkillIndex,10,10,300,10,0);//将我的当前技能绘制到界面上

bilixiaobai_addstringUI(obj,"mystate"+" "+state.tostring()+" "+"attackindex"+" "+attackIndex.tostring()+" throwstate"+" "+throwState.tostring(),10,10,320,10,0);

//状态形式绘制到界面上

bilixiaobai_addstringUI(obj,"job"+" "+sq_getJob(obj).tostring()+" "+"growjob"+" "+sq_getGrowType(obj).tostring(),10,10,340,10,0);//职业和转职类型绘制到界面上

bilixiaobai_addstringUI(obj,"weapontype"+" "+obj.getWeaponSubType().tostring()+" "+"carryweapon"+" "+obj.isCarryWeapon(),10,10,360,10,0);//我携带的武器类型和是否携带武器信息绘制到界面上

bilixiaobai_addstringUI(obj,"udp type"+" "+sq_GetCurrentModuleType().tostring()+" teamstate"+" "+obj.sq_GetTeam(),10,10,380,10,0);//udp类型绘制到界面上

bilixiaobai_addstringUI(obj,"substate"+" "+SubState.tostring(),10,10,400,10,0);//子状态绘制到界面上

}

1.DOF_NUT_Develop_UI_Draw_2的评论 (共 条)

分享到微博请遵守国家法律