我正在使用 cocos2d 和 box2d、桨、球、砖块在 Objective c 中制作 iPhone 游戏,没有什么花哨的东西,桨处理代码非常适合 x 和 y 运动。我在另一个函数中添加了径向重力代码,但这就是它变得奇怪的地方。该代码没有被调用,只是位于一个方法中,它破坏了完全不相关的桨代码。
更奇怪的是,我在另一个类中添加了一个 nslog,它将混乱从不在 x 上移动到不在 y 上移动并开始移动 x。我可以注释掉随机的代码,它开始工作或重新破解。我可以将 box2d 代码移出并移动它,它是否有效。一切都是随机的。
有谁知道这可能是什么原因?Objective-C 中是否有最大方法大小我可能会溢出,这个类中的一个方法非常大?有什么想法吗?
这是一些代码,如果其他代码相同,则框体只是翻转了。还有更多这样的不同物理体相互作用。如果我对其中任何一个都发表评论,它会起作用。不是,也不是
if (spriteA.tag == kSpritePowerUp && spriteB.tag == kSpritePaddle) {
if (std::find(toDestroy.begin(), toDestroy.end(), bodyB) == toDestroy.end()) {
PowerUp *tempPowerUp = (PowerUp*)bodyA->GetUserData();//spriteA;
Paddle* tempPaddle = (Paddle*)bodyB->GetUserData();//spriteB;
[tempPaddle addPowerUp:tempPowerUp];
[self playSoundEffect:kGameSoundPowerUp];
toDestroy.push_back(bodyA);
}
}
编辑:解决了我逐行遍历所有课程的所有内容。我跑了泄漏,发现2。
但最后,它变成了一个实用函数中的 2 个本地布尔值,我依赖它来自动初始化为 false。就像大多数时候一样,但有时不会。没有特别的原因。月相什么的。