我正在使用 CCParallaxNode 滚动 3 个背景以及 Ray Wenderlich 的类别以在背景离开屏幕时移动背景。
它工作得很好,我的问题是我想动态添加孩子(敌人),就像每 5 秒一样。通常我只会使用 CCMoveTo 动作将敌人添加到父层以在屏幕上为他设置动画,但我希望我的敌人跟随视差层的前景。
随着游戏的进行,我正在慢慢提高滚动速度。
打电话时我似乎无法找出正确的偏移量
CGFloat offset = self.gameBackground.position.x;
[self.gameBackground addChild:enimy z:5 parallaxRatio:ccp(0.1, 0.1) positionOffset:ccp(offset, 85)];
有人可以帮我解决这个问题吗?
编辑:
我这样做是为了移动背景:
- (void)update:(ccTime)delta
{
self.speed -= 0.5f;
CGPoint backgroundScrollVel = ccp(self.speed, 0);
self.gameBackground.position = ccpAdd(self.gameBackground.position, ccpMult(backgroundScrollVel, delta));
}
谢谢
光线文章:http ://www.raywenderlich.com/3611/how-to-make-a-space-shooter-iphone-game
最终解决方案:
我最终只是将敌人添加到 CCLayer 而不是 Parallax。为了以与 Parallax 中最前面的子层相同的速度移动敌人,我执行了以下操作:
更新中:(ccTime)delta:
CGFloat parallaxRatio = 0.1f;
CGPoint backgroundScrollVel = ccp((self.backgroundSpeed * - 1) * parallaxRatio, 0);
for(WKEnimy *enemy in self.enimies)
{
enemy.position = ccpAdd(enemy.position, ccpMult(backgroundScrollVel, delta));
}