在 GameScene::init()方法里面加了如下代码:
..............
b2Vec2 gravity=b2Vec2(0.0f,-10.0f);
bool doSleep=true;
world=new b2World(gravity,doSleep);
world->SetContinuousPhysics(true);
b2BodyDef groundBodyDef;
groundBodyDef.position.Set(0,0);
b2Body * groundBody=world->CreateBody(&groundBodyDef);
this->scheduleUpdate();
.........................void GameScene::update(cocos2d::ccTime time)
{
int32 velocityIterations = 8 ;
int32 positionIterations = 1 ;
world->Step(0.03,velocityIterations,positionIterations);
for (b2Body *b=world->GetBodyList();b;b->GetNext())
{
if (b->GetUserData()!=NULL)
{
CCSprite *myActor=(CCSprite*)b->GetUserData();
myActor->setPosition(CCPointMake(b->GetPosition().x/PTM_RATIO, b->GetPosition().y/PTM_RATIO));
myActor->setRotation(-1*CC_RADIANS_TO_DEGREES(b->GetAngle()));
}
}
}
最后运行到GameScene 场景时很卡,最后程序无法响应而终止。什么原因啊?
..............
b2Vec2 gravity=b2Vec2(0.0f,-10.0f);
bool doSleep=true;
world=new b2World(gravity,doSleep);
world->SetContinuousPhysics(true);
b2BodyDef groundBodyDef;
groundBodyDef.position.Set(0,0);
b2Body * groundBody=world->CreateBody(&groundBodyDef);
this->scheduleUpdate();
.........................void GameScene::update(cocos2d::ccTime time)
{
int32 velocityIterations = 8 ;
int32 positionIterations = 1 ;
world->Step(0.03,velocityIterations,positionIterations);
for (b2Body *b=world->GetBodyList();b;b->GetNext())
{
if (b->GetUserData()!=NULL)
{
CCSprite *myActor=(CCSprite*)b->GetUserData();
myActor->setPosition(CCPointMake(b->GetPosition().x/PTM_RATIO, b->GetPosition().y/PTM_RATIO));
myActor->setRotation(-1*CC_RADIANS_TO_DEGREES(b->GetAngle()));
}
}
}
最后运行到GameScene 场景时很卡,最后程序无法响应而终止。什么原因啊?
那个update()方法,那是什么原因呢?求大神帮助!!!!