我的代码中有一些东西,我已经做了很多次,但现在我不能!
for (b2Body* bo = world->GetBodyList(); bo; bo = bo->GetNext())
{
CCSprite *tempSprite = (CCSprite *) bo->GetUserData();
NSLog(@"%f",tempSprite.position.x); //crashes in this line.
我正在计算我世界上的尸体,我可以看到我有22个,但每次我尝试做某事:tempSprite.position.x
它会崩溃!
我也可以打印出来:
if(tempSprite != NULL)
NSLog(@"YES");
为什么我不能获得这个职位? 我的世界工作得很好;联络听众做得很好;无法理解。
任何帮助?
答案 0 :(得分:0)
解决但不清楚为什么
我做了
[badBondSheet1 removeChild:actora cleanup:YES];
[self removeChild:actorb cleanup:YES];
[self shiftEnemies:touchPointA]; // calls the code that i have posted
当shiftEnemies是我发布的函数 - 它在所有实体上运行。
我更正了:
[self shiftEnemies:touchPointA];
[badBondSheet1 removeChild:actora cleanup:YES];
[self removeChild:actorb cleanup:YES];
它有效。
那是因为我跑过我的身体,其中一些没有用户数据,因为我已经清理了精灵!
所以你必须摧毁身体并清理精灵然后越过你的身体。 结论:不要清理你的弹簧,并且在你彻底摧毁你的身体的同时做一些事情!
听起来合理吗?