我正在尝试构建一个平台游戏。在我的游戏中,随机平台出现并从屏幕右侧移动到左侧。
Using :
b2Vec2 impulse = b2Vec2(-5, 0);
platformBody->SetLinearVelocity(impulse);
但是当我看到我的统计数据时,call / countRef(统计数据的第一行)的数量总是随着新平台从右向左移动而增加。我想知道如何在现有平台移动通过左屏幕(屏幕外)后删除它们。我所有的平台都是 b2_kinematic 体(Box2D)。
编辑答案:
我设法通过以下方式解决了它:
for(std::vector::size_type i = 0; i != m_platforms.size(); i++)
{
if (m_platforms[i]->GetPosition().x < 0.0f && m_platforms[i]->GetType() == b2_kinematicBody) { CCSprite *sprite = (CCSprite *) m_platforms[i]->GetUserData(); sprite->removeFromParentAndCleanup(true); world->DestroyBody(m_platforms[i]); } }