0

我正在开发我的游戏,我很难将我的头脑围绕在一个概念上,也许你可以为我澄清一下。

所以在子弹类中,我在点 0,0 创建了一个子弹对象,这很好,然后当我真正从主游戏创建它时,我在点创建它

thePlayer.position.x, 0

它将它放在玩家所在的 X 轴上,将 0 放在屏幕底部的 Y 轴上

我的问题是假设我想在枪的顶部创建子弹。不在屏幕底部。所以我会写 thePlayer.position.x,60; 它会从枪口开始,但在击中目标之前会有 60 的偏移量……我确实想出了一个解决方案,但我不喜欢它。我认为必须有一个更好的答案..

我的回答是:进行 var call bulletOffet=any number 让我们说 60 然后在 thePlayer.position.x, 0+bulletOffSet 创建子弹

现在当我检查子弹和目标时

for (Bullet *someBullet in self.children) { if ([someBullet isKindOfClass:[Bullet class]]) { CGPoint bulletPoint = CGPointMake(someBullet.position.x, someBullet.bulletSprite.position.y+bulletOffSet);

这确实有效,但必须有更好的解决方案让我知道我错过了什么谢谢

4

1 回答 1

0

您的问题应该可以通过更改子弹的锚点来解决。

我认为了解锚点将帮助您解决问题。我在下面附上了一个链接,它为锚点的工作方式提供了一个很好的公会。

http://www.qcmat.com/understanding-anchorpoint-in-cocos2d/

于 2012-05-28T14:20:57.723 回答