物理在另一个类中初始化时不起作用?

时间:2014-02-02 22:35:48

标签: ios iphone objective-c sprite-kit skphysicsbody

出于某种原因,我的主要玩家的物理实际上并没有在场景中工作。 在场景中我初始化我的播放器

-(id)initWithSize:(CGSize)size {
    if (self = [super initWithSize:size]) {
    Eskimo *runner = [[Eskimo alloc]init];
    runner.position = CGPointMake(100, 300);
    [self addChild:runner];


    self.physicsWorld.gravity = CGVectorMake(0, -3); // 0, -2

    self.physicsWorld.contactDelegate = self;

    [runner performRun];
    }
return self;
}

这是我的Eskimo类的init:

-(id)init {
if (self = [super init]) {

    self.name = @"runner";

    self.physicsBody = ((Eskimo*)[[Physics alloc]initPhys:self.name :CGSizeMake(60, 60)]).physicsBody;

}

return self;
}

以下是我的物理课的初始化部分:

-(instancetype)initPhys:(NSString*)string :(CGSize)size{
if (self = [super init]) {
    self.type = string;

    if ([self.type isEqualToString:@"runner"]) {
        self.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:size];
        self.physicsBody.restitution = 0.3;
        self.physicsBody.mass = 1;
        self.physicsBody.categoryBitMask = runnerCategory;
        self.physicsBody.contactTestBitMask = monsterCategory;
        self.physicsBody.collisionBitMask = groundCategory|monsterCategory;

    }
}

return self;


}

我在场景课中输出了我的跑步者的归还,只是为了看看物理体是否在那里并且它正确地出来了。然而,即使我设置了一个重力矢量,跑步者也不会受到它的影响,或者我应用它的任何力量。我不知道为什么因为它之前我在Eskimo类中拥有physicsBody的东西,没有Physics类。这里有什么我想念的吗?你能不能像我在Eskimo课上所做的那样将物理学等同起来?

0 个答案:

没有答案