出于某种原因,我的主要玩家的物理实际上并没有在场景中工作。 在场景中我初始化我的播放器
-(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课上所做的那样将物理学等同起来?