gpt4 book ai didi

ios - 使用 cocos2d 2.0 的 iPhone5S 上的旋转动画问题

转载 作者:可可西里 更新时间:2023-11-01 06:19:09 24 4
gpt4 key购买 nike

我正在用cocosbuilder2.1、cocos2d 2.0制作CCSprite旋转动画。它在 iPhone4S(iOS 8.0.2)、iPhone5 模拟器、iPad 2 模拟器、iPad Retina 模拟器上运行良好,但在 iPhone5S(iOS 7.1.1)、iPhone5S 模拟器、iPad Air 模拟器、iPhone 6 模拟器、iPhone 上有“抖动”问题6 加模拟器。build设置如下:

在目标下的build设置中:

基础 SDK = 最新的 iOS (iOS 8.0);有效架构 = arm64 armv7 armv7s

一般在目标下:

部署目标 = 6.0

一开始以为是cocosbuilder的BUG,后来手动做sprite rotating测试也有同样的问题,感觉cocos2d 2.0对iPhone5S的兼容性有问题。

代码:在第一个场景的图层中

-(void)onEnter {
[super onEnter];
...//play music
...//load image resources
CCSprite *testSprite = [CCSprite spriteWithSpriteFrameName:@"testIMG.png"];
testSprite.position = ccp(200,200);
[self addChild:testSprite];
CCRotateBy *rotateAction = [CCRotateBy actionWithDuration:3 angle:360];
[testSprite runAction:rotateAction];
...//other stuff, nothing related with CCBReader or cocosbuilder
}

“抖动”问题就好像 testSprite 的旋转值在每帧都设置为 0 后被设置为正确的值。例如就像它旋转到 1,然后回到 0,然后回到 2,然后回到 0、3、0、4、0 ...等等。所有这些都发生得非常快,这使得它有点“闪烁”。最后,旋转总是重置为 0。

我google了一下,没搜到什么相关的东西,好像这是一个很私有(private)的问题。如果这是个人问题,请告诉我应该朝着哪个方向努力寻找错误所在,谢谢!

最佳答案

虽然现在仍然确定是什么导致了这个问题,但我通过将有效架构更改为 armv7 解决了这个问题。此build设置不会利用比 iPhone4S 更新的设备上的新架构,但至少不会导致抖动问题。

==============更新=================

我发现了与此问题相关的警告。 “名为‘setRotation’的多个方法”参见相关问题:ARC semantic issue "multiple methods named 'setRotation' " while archiving only

尽管我已将我的旧项目的 cocos2d 升级到 v2.2 版本(太复杂而无法更新到 v3),但我仍然收到警告。

最后我在CCBAnimationManager.m中使用类型转换解决了这个问题

@implementation CCBRotateTo
-(void)startWithTarget:(CCNode *)aTarget
{
[super startWithTarget:aTarget];
starAngle_ = [(CCNode *)self.target rotation];
diffAngle_ = dstAngle_ - startAngle_;
}

-(void)update:(ccTime)t
{
[(CCNode *)self.target setRotation: startAngle_ + diffAngle_ * t];
}

有了这个改变,现在我也可以支持 arm64 了。

关于ios - 使用 cocos2d 2.0 的 iPhone5S 上的旋转动画问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26396648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com