Cocos2d iphone 释放鼠标点时获取精灵位置时出现EXC_BAD_访问错误
我试图在释放移动精灵的鼠标点时获得精灵的确切位置(即使精灵可能仍在移动)并显示它。我正在使用Cocos2d和Box2d。下面是ccTouchesEnded方法的代码 请注意:Cocos2d iphone 释放鼠标点时获取精灵位置时出现EXC_BAD_访问错误,cocos2d-iphone,box2d,exc-bad-access,box2d-iphone,Cocos2d Iphone,Box2d,Exc Bad Access,Box2d Iphone,我试图在释放移动精灵的鼠标点时获得精灵的确切位置(即使精灵可能仍在移动)并显示它。我正在使用Cocos2d和Box2d。下面是ccTouchesEnded方法的代码 请注意: - (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { if (mouseJoint) { b2Fixture *fixture; CCSprite *mySprite = (CCSprite *) fixture->
- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
if (mouseJoint)
{
b2Fixture *fixture;
CCSprite *mySprite = (CCSprite *) fixture->GetUserData();
NSInteger attachedSprite = mySprite.tag;
if (attachedSprite == 1) {
CGPoint spritePosition = mySprite.position;
CCLOG(@"the sprite position is x:%0.2f, y:%0.2f", spritePosition.x, spritePosition.y);
}
world->DestroyJoint(mouseJoint);
mouseJoint = NULL;
}
}
我不断收到EXC_BAD_访问错误,指向该行:
CCSprite *mySprite = (CCSprite *) fixture->GetUserData();
我真的不知道怎么了。请帮忙 由于夹具尚未初始化,您将收到该错误,请查看此 他是如何环游世界所有元素的
for(b2Body *b = _world->GetBodyList(); b; b=b->GetNext()) {
if (b->GetUserData() != NULL) {
CCSprite *curSprite = (CCSprite *)b->GetUserData();
...
}
}
在执行GetUserData()之前,必须为装置分配一些内容。谢谢。我已经做了更改,但我发现CCLOG没有出现。以下是新的ccTouchesEnded代码:
-(void)ccTouchesEnded:(NSSet*)接触事件:(UIEvent*)事件{if(mouseJoint){for(b2Body*b=world->GetBodyList();b;b=b->GetNext()){if(b->GetUserData()!=NULL){CCSprite*mySprite=(CCSprite*)b->GetUserData();if(mySprite.tag==1){CGPoint spritePosition=mySprite.position;CCLOG(@“sprite位置是x:%0.2f,y:%0.2f”,spritePosition.x,spritePosition.y);}}}}}}}world->DestroyJoint(mouseJoint);mouseJoint=NULL;}
:请查看后续内容