我是Objective-c的新手。我目前正在使用cocos2d和box2d进行游戏。让我详细描述一下我的游戏:
在我的游戏中,我有一个主角站在建筑物顶部。在建筑物下面是这条路。敌人以各种随机速度从道路经过,从右边进入屏幕并从左边离开。我已经将敌人创建为b2_dynamicBodies,并使用SetLinearVelocity()为每个敌人设置随机速度。主角射击敌人。当射弹击中敌人时,射弹和敌人都会被摧毁。我想做的是那些未被射击并从屏幕移出的敌人,我想通过检查他们的坐标一旦他们离开屏幕就摧毁这些敌人。我尝试过使用world-> DestroyBody(body),但它不起作用。请帮我解决这个问题!
P.S。我不是将敌人创建为单独的不同身体,但我有一个创建一个身体并使其移动的方法,然后我在一个时间间隔内调用了init中的方法。
答案 0 :(得分:1)
将标签分配给精灵。我正在使用10.检查精灵通过获取x位置从屏幕移出。如果它小于0或大于480(对于横向)。然后使用以下代码摧毁那个尸体。
for (b2Body* b = world->GetBodyList(); b; b = b->GetNext())
{
if (b->GetUserData() != NULL) {
CCSprite *temp1 = (CCSprite*)b->GetUserData();
if(temp1.tag == 10)
{
NSLog(@"Destroying here");
world->DestroyBody(b);
[self removeChild:temp1 cleanup:YES];
}
}
}