我想从 Sprite 中设置主体的用户数据。但主体未显示在屏幕上。 但它不起作用。我不知道为什么。 我的代码如下所示: 如果你知道问题出在哪里,请告诉我。谢谢!
CGSize screenSize = [[CCDirector sharedDirector] winSize];
CGPoint screenCenter = ccp(screenSize.width*0.5f, screenSize.height*0.5f);
b2Vec2 gravity = b2Vec2(0.0f, -10.0f);
bool allowBodiesToSleep = true;
world = new b2World(gravity);
world->SetAllowSleeping(allowBodiesToSleep);
b2BodyDef bodyDef;
bodyDef.type = b2_dynamicBody;
bodyDef.position = [self toMeters:screenCenter];
CCSprite *hero = [CCSprite spriteWithFile:@"hero_jump0.png"];
hero.position = screenCenter;
bodyDef.userData = hero;
b2Body *body = world->CreateBody(&bodyDef);
b2PolygonShape dynamicBox;
dynamicBox.SetAsBox(hero.contentSize.width/PTM_RATIO*0.5f, hero.contentSize.height/PTM_RATIO*0.5f);
b2FixtureDef fixtureDef;
fixtureDef.shape = &dynamicBox;
fixtureDef.density = 0.3f;
fixtureDef.friction = 0.5f;
fixtureDef.restitution = 0.6f;
body->CreateFixture(&fixtureDef);
最佳答案
您尚未将 Sprite 作为子级添加到节点层次结构中。所以它在范围末尾被删除
关于box2d - cocos2D-Box2D,CCSprite 不显示在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13641811/