python cocos,python基础教程开发

  python cocos,python基础教程开发

  1.概览框架事件也是新增加的功能。我们将在第2篇文章中看到如何使用它。我们稍微修改了上一篇文章中制作的动画。

  2.用途和原理。首先介绍一下框架事件。顾名思义:与帧相关联的事件。

  为什么要这么做?首先,没有人愿意做一大堆破动画,然后一点一点的播放。此外,有时流和事件控制最好与框架相关联。比如一个攻击动作有两个部分:切和砍。很自然,当刀碰到敌人时,伤害就发生了。做两个动画很麻烦。程序要管理大量的动画,美工会很郁闷:不仅要给你剪图,还要给你剪动画。如果固定时间做,就会有问题。比如机器卡顿,帧数就会下降。这个时候,时间就不准确了。使用框架事件方法会更好。刀碰了会有事件,可以更好的处理这种情况。

  它的原理是监控。当运行到事件所在的帧时,会触发回调。我们要做的就是在回调函数中操作,确定这个帧是不是我们想要的。标记的方式是标签串。

  3.设置frame事件以打开项目,运行动画编辑器,并切换到动画模式。

  将时间轴拖到相应的帧,然后选择一个对象。这里,我选择左手。然后在其属性中设置框架事件。

  4.创建新项目运行脚本创建testFrameEvt,编译运行确保原项目正确。将CocoStudio导出的资源复制到资源目录。然后配置CocoStudio导出文件的依赖路径和库。

  5.加载动画Bool Hello World: init () {//1。超级init first if(!Layer:init() ) {返回false} Size visibleSize=Director:getInstance()-getVisibleSize();point origin=Director:getInstance()-getvisible origin();ArmatureDataManager:getInstance()-addArmatureFileInfo( change shape。export JSON’);Armature * arm=Armature:create( change shape );arm-get animation()-play( frame single );arm-get animation()-setSpeedScale(0.5);arm-set position(Point(visible size . width/2,visible size . height/2));this-addChild(arm);返回true}运行,可见动画播放。

  6.监听帧事件,并向该类添加一个函数:

  void onFrameEvent(Bone *bone,const string evt,int originFrameIndex,int currentFrameIndex);并在cpp中实施:

  void hello world:onFrameEvent(Bone * Bone,const string evt,int originFrameIndex,int currentFrameIndex){ if(strcmp(evt, 110 )==0){ action interval * action=shatteredtiles 3d:create(0.8f,Size(30,30),5,false);this-runAction(动作);}}如你所见,该事件由一个字符串标记,最后在init:

  arm-get animation()-setFrameEventCallFunc(this,frame event _ selector(hello world:onFrameEvent));我们使用了一个效果来表示事件,所以我们必须恢复网格。这里我们添加一个调度函数。当然,您也可以在这里用帧事件标记恢复点。

  //声明void check action(float dt);//实现void hello world:check action(float dt){ if(this-getnumberofrunningactions()==0 this-getgrid()!=nullptr)this-set grid(nullptr);}//注册时间表(schedule _ selector(hello world:check action));跑起来,就能看到效果了。

  7.总结如何在cocoStudio中通过设置Tag来标记框架事件,并在程序中设置回调。然后根据标签名判断是否是需要的帧事件。我有两个担心。第一,效率。我想知道当有许多帧事件时,监控的效率如何。第二,低效率自动绘制框架时,会不会把事件框架画出来,导致没有事件。我希望我的担心是多余的。

  转载于:https://www.cnblogs.com/damowang/p/4836403.html

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: