cocos2dx: setDisplayFrame 设置精灵的定格帧,实现中途每次停止动画,精灵都保证在指定的一帧

40 篇文章 1 订阅
36 篇文章 0 订阅

cocos2dx: setDisplayFrame 设置精灵的定格帧,实现中途每次停止动画,精灵都保证在指定的一帧

设备/引擎:Mac(11.6)/cocos

开发工具:Xcode(13.0)

开发需求:需要实现中途每次停止动画,精灵都保证在指定的一帧,而不会出现乱帧影响展示效果

之前工程中有提到如何在工程中创建动画,除了实现动画,很多时候用户需要在游戏中进行点击互动,尤其是游戏中的角色需要跟用户进行互动,这个时候就既要满足角色播放动画的要求,又需要满足用户对角色的点击操作等等。

打个比方:如果每次用户点击角色后,只是简单的stopAction,那每次角色停留的帧就会非常随意,比如角色正在闭眼,此时刚好用户点击,那可能角色最后就一直定格在闭眼的状态,对用户的游戏体验不是很好,这时就需要对每次角色定格的帧进行预设,来提高游戏的整体体验。

setDisplayFrame
之前已经知道,工程中涉及到的动画均是将每帧打包成plist文件,再在工程中进行调用,setDisplayFrame就是取plist文件中的一帧来进行设置,可以很好的处理精灵定格帧的问题。

方法定义:setDisplayFrame(CCSpriteFrame *pNewFrame),参数为CCSpriteFrame类型,所以需要先获取一个帧图片信息,再传到方法中,便可以实现预设精灵的定格帧。

代码如下

CCSprite* newItemSpr = (CCSprite*)this->getChildByTag(获取动画精灵);;
CCSpriteFrame* itemAction= CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("要预设的帧图片名称");
newItemSpr->setDisplayFrame(itemAction);

至此便完成设置定格帧的操作,一般都是需要对动画进行强制停止时需要使用该方法。可以更好的提高用户天。

希望能给大家带来帮助!!!有什么问题需要讨论的可以评论私信欢迎讨论~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GameTomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值