Cocos2d iphone 不工作-Box2D
我在我的box2D游戏中使用tilemap,我在其中创造了超能力。当玩家点击电源时,屏幕上会显示一个分数标签。除此之外,我还想在玩家点击tilemap时将其移除。我已显示标签,但无法卸下电源。下面是一些代码: 在ContactListener中,我调用从tilemap移除电源的方法:Cocos2d iphone 不工作-Box2D,cocos2d-iphone,Cocos2d Iphone,我在我的box2D游戏中使用tilemap,我在其中创造了超能力。当玩家点击电源时,屏幕上会显示一个分数标签。除此之外,我还想在玩家点击tilemap时将其移除。我已显示标签,但无法卸下电源。下面是一些代码: 在ContactListener中,我调用从tilemap移除电源的方法: void ContactListener::BeginContact(b2Contact *contact) { else if(actorA.tag==obj.gamePower.tag) //obj
void ContactListener::BeginContact(b2Contact *contact) {
else if(actorA.tag==obj.gamePower.tag) //obj is a DataClass object.
{
[GameScene addPointLabel]; // For displaying score label
[GameScene removePower:actorA];
}
+(void)removePower:(id)sender
{
GameScene *obj=[[GameScene alloc]init];
CCSprite *sprite = (CCSprite *)sender;
[obj removePowerFromScene:sprite];
[obj release];
}
-(void)removePowerFromScene:(id)sender
{
CCSprite *sprite = (CCSprite *)sender;
[self removeChild:sprite cleanup:YES];
}
我已经在tilemap上创建了一个对象层来显示电源。但不知何故,我无法移除它。有人能帮我吗?- 如果电源是CCNode,为什么不使用[power removeFromParentAndCleanup:YES]将其删除
- (removePower:)不会删除任何内容,因为它会创建一个新场景,并从该场景中删除精灵不属于的精灵
- 另一个注意事项是,与听众联系时要小心。删除BeginContact中的o节点可能会导致崩溃。假设powerA同时与actor1和actor2接触。使用powerA和actor1对BeginContact的第一次调用将删除powerA,因此使用powerA ENVELVED对BeginContact的后续调用将崩溃李>