【问题标题】:Cocos2d sprite flicker while movingCocos2d精灵移动时闪烁
【发布时间】:2013-05-11 10:02:24
【问题描述】:

我正在使用 cocos2d-2 从左到右移动精灵。这是我在更新方法中用来移动精灵的代码,

-(void) update:(ccTime)delta
{
    for (CCSprite* sprite in self.spriteBatch.children)
    {
        CGPoint pos = sprite.position;
        pos.x -= (self.scrollSpeed * factor.floatValue) * (delta * 50);
        sprite.position = pos;
        }
}

精灵在移动时没有任何问题,但它们在移动时会闪烁。我正在使用 iOS 版本 5.1.1 的 iPhone 4 上对此进行测试。我通读了论坛并尝试设置 setDepthTest:NO 和 setProjection:kCCDirectorProjection2D,但它们在移动时仍然闪烁。请帮忙。

提前致谢

【问题讨论】:

  • 只是好奇:为什么不移动 self.spriteBatch(假设它是 CCSpriteBatchNode 或 CCNode 的后代),而不是一一移动它的子节点?
  • 那是因为每个孩子的移动速度不同,但是我没有在这里粘贴那部分代码。
  • 你真的是指闪烁(可见/不可见)吗?还是不稳定的运动? cocos2d哪个版本?你用vertexZ吗?
  • 我的意思是,精灵在移动时会摇晃。它们一直可见,有点像摇晃的动作。我正在使用 cocos2d v2.0.0 版本。我不确定vertexz是什么意思。我在 cocos2d 中使用了 z 属性,并将子元素添加到 sprite 批处理中。
  • 我有同样的问题, setDepthTest:NO 和 setProjection:kCCDirectorProjection2D 没有帮助。你有解决办法吗?

标签: ios objective-c cocos2d-iphone


【解决方案1】:

我相信你应该阅读http://www.cocos2d-x.org/news/24。我已使用此代码并解决了我的问题。

CCDirector::sharedDirector()->setDepthTest(false);

【讨论】:

  • 发帖人说他试过 setDepthTest:NO 和 setProjection:kCCDirectorProjection2D。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多