Cocos2d iphone Cocos2D SpriteBuilder带轮子的简易车

Cocos2d iphone Cocos2D SpriteBuilder带轮子的简易车,cocos2d-iphone,spritebuilder,Cocos2d Iphone,Spritebuilder,我目前正在尝试一些东西。我已经完成了本教程: 但是我现在有点困了。 我在SpriteBuilder中创建了一个CCNode并添加了3个图像。carbody.png和2 wheel.png。 我把所有的对象都变成了物理对象 在代码中,我尝试用关节连接它们并移动它们。然而,车体移动,但车轮仍保持原位 #import "Car.h" @implementation Skater{ CCNode *_wheel1; CCNode *_wheel2; CCNode *_carBody; CCPhysic

我目前正在尝试一些东西。我已经完成了本教程: 但是我现在有点困了。 我在SpriteBuilder中创建了一个CCNode并添加了3个图像。carbody.png和2 wheel.png。 我把所有的对象都变成了物理对象

在代码中,我尝试用关节连接它们并移动它们。然而,车体移动,但车轮仍保持原位

#import "Car.h"

@implementation Skater{
CCNode *_wheel1;
CCNode *_wheel2;
CCNode *_carBody;
CCPhysicsJoint *_bodyWheelJoint1;
CCPhysicsJoint *_bodyWheelJoint2;


}
- (id)init {
    self = [super init];

if (self) {
    [_wheel1.physicsBody setCollisionGroup: _carBody];
    [_wheel2.physicsBody setCollisionGroup: _carBody;
    [_carBody.physicsBody setCollisionGroup: _carBody];

    _bodyWheelJoint1 = [CCPhysicsJoint connectedPivotJointWithBodyA:_wheel1.physicsBody bodyB: _carBody.physicsBody anchorA:_wheel1.anchorPointInPoints];
    _bodyWheelJoint2 = [CCPhysicsJoint connectedPivotJointWithBodyA:_wheel2.physicsBody bodyB: _carBody.physicsBody anchorA:_wheel2.anchorPointInPoints];


}
return self;
}
在游戏中,我只做了以下几点:

-(void)didLoadFromCCB{
[_car runAction:
 [CCActionMoveTo actionWithDuration:10 position:CGPointMake(2000,_car.position.y)]];

}
车体移动,车轮不动

我错过了什么

编辑: 我现在做了一些改变,但我的轮子仍然保持不变

#import "Car.h"

@implementation Car{
CCNode *_wheel1;
CCNode *_wheel2;
CCNode *_carBody;
CCPhysicsJoint *_bodyWheelJoint1;
CCPhysicsJoint *_bodyWheelJoint2;
}
- (id)init {

    self = [super init];
if (self) {
    CCLOG(@"Car created");
    [_wheel1.physicsBody setCollisionGroup:_carBody];
    [_wheel2.physicsBody setCollisionGroup:_carBody];
    [_carBody.physicsBody setCollisionGroup:_carBody];

    _bodyWheelJoint1 = [CCPhysicsJoint connectedPivotJointWithBodyA:_wheel1.physicsBody bodyB:_carBody.physicsBody anchorA:_wheel1.anchorPointInPoints];
    _bodyWheelJoint2 = [CCPhysicsJoint connectedPivotJointWithBodyA:_wheel2.physicsBody bodyB:_carBody.physicsBody anchorA:_wheel2.anchorPointInPoints];

}
return self;
}
-(void)moveCar:(int)distance{
CCLOG(@"Car should move");
CGPoint launchDirection = ccp(1, 0);
CGPoint force = ccpMult(launchDirection, distance);
[self.physicsBody applyForce:force];
}
@end

你只是错过了移动(和其他)动作绕过物理的要点。一旦一个节点拥有一个物理体,使用改变位置和旋转的CCAction*类是不允许的,大多数其他类(即scale)也不会应用于物理体,但仍然可以安全使用


要移动物理对象,请对物理体施加一个脉冲或力。

这是一个好的观点,谢谢!然而,这并不能解决我的问题。车轮一直停在原地:\