2011-03-20 4 views
1

Je viens de commencer à travailler avec cocos2d et box2d pour iOS SDK, et j'ai quelques problèmes. J'ai fait fonctionner les modèles, et j'ai compilé l'application de test (celle sur laquelle vous cliquez sur l'écran et une boîte avec une lettre aléatoire).problème cocos2d/box2d

Mon premier problème est que je ne peux pas comprendre comment obtenir un modèle vierge. Existe-t-il un moyen rapide de le faire lorsque je commence une nouvelle application?

Mon second problème est que je n'arrive pas à comprendre comment simplement changer la couleur d'un objet. Je peux définir quelque chose comme ceci:

b2BodyDef bodyDef; 
bodyDef.type = b2_dynamicBody; 

bodyDef.position.Set(p.x/PTM_RATIO, p.y/PTM_RATIO); 
b2Body *body = world->CreateBody(&bodyDef); 

b2CircleShape circle; 
circle.m_radius = .5f;//These are mid points for our 1m box 

b2FixtureDef fixtureDef; 
fixtureDef.shape = &circle; 
fixtureDef.density = 1.0f; 
fixtureDef.friction = 0.1f; 
fixtureDef.restitution = 0.3f; 
body->CreateFixture(&fixtureDef); 

Mais y a-t-il un moyen simple de faire quelque chose d'une certaine couleur?

Question finale: est-ce que cet exemple d'application a l'accéléromètre-gravité activé?

Merci!

Répondre

3

Pour donner à un certain corps une couleur spécifique, affectez 'userData' au corps. userData est votre sprite avec la couleur spécifique que vous vouliez

Et répondre à votre réponse finale est OUI.

2

Pour faire modèle vierge procédez comme suit

  1. Enlevez ces lignes de - (id) init
 
CCSpriteBatchNode *batch = [CCSpriteBatchNode batchNodeWithFile:@"blocks.png" capacity:150]; 
[self addChild:batch z:0 tag:kTagBatchNode]; 
[self addNewSpriteWithCoords:ccp(screenSize.width/2, screenSize.height/2)]; 

CCLabelTTF *label = [CCLabelTTF labelWithString:@"Tap screen" fontName:@"Marker Felt" fontSize:32]; 
[self addChild:label z:0]; 
[label setColor:ccc3(0,0,255)]; 
label.position = ccp(screenSize.width/2, screenSize.height-50); 
  1. Retirez la fonction
-(void) addNewSpriteWithCoords:(CGPoint)p
  1. Retirez la ligne suivante - (void) ccTouchesEnded: (NSSet *) touche withEvent: (UIEvent *) événement
[self addNewSpriteWithCoords: location];

Essayez. :)