1

我刚刚开始为 iOS SDK 使用 cocos2d 和 box2d,并且遇到了一些问题。我让模板工作,并让测试应用程序(单击屏幕并出现一个带有随机字母的框的应用程序)进行编译。

我的第一个问题是我不知道如何获得空白模板。当我开始一个新的应用程序时,有没有一种快速的方法来做到这一点?

我的第二个问题是我无法弄清楚如何简单地更改对象的颜色。我可以这样定义:

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);

但是有没有一种简单的方法可以使某物具有某种颜色?

最后一个问题:这个示例应用程序是否启用了加速计重力?

谢谢!

4

2 回答 2

3

要使某个主体具有特定颜色,请将“userData”分配给主体。userData 是您想要的特定颜色的精灵

并回答您的最终答案是肯定的。

于 2011-04-12T08:57:21.823 回答
2

要制作空白模板,请执行以下操作

  1. 从 -(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:@"点击屏幕" fontName:@"Marker Felt" fontSize:32];
[自我addChild:标签z:0];
[标签集颜色:ccc3(0,0,255)];
label.position = ccp(screenSize.width/2, screenSize.height-50);
  1. 删除功能
-(void) addNewSpriteWithCoords:(CGPoint)p
  1. 从 - (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 中删除以下行
[self addNewSpriteWithCoords: 位置];

试试看。:)

于 2011-04-12T08:54:35.330 回答