我只是想在横向场景中设置一个基本的场景,带有重力,并将场景设置为边缘循环。
我设置了场景的物理体和主角精灵的物理体,这是我的代码:
-(id)initWithSize:(CGSize)size
{
if (self = [super initWithSize:size])
{
self.backgroundColor = [SKColor redColor];
[self setPhysicsBody:[SKPhysicsBody bodyWithEdgeLoopFromRect:[self frame]]];
}
return self;
}
-(void)setupMain
{
if (!self.mainCharacter)
{
self.mainCharacter = [[SKSpriteNode alloc] initWithImageNamed:@"spriteDefault"];
[self.mainCharacter setPosition:CGPointMake(CGRectGetMidX([self frame]), CGRectGetMidY([self frame]))];
[self addChild:self.mainCharacter];
self.mainCharacter.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:self.mainCharacter.frame.size];
self.mainCharacter.physicsBody.dynamic = YES;
self.mainCharacter.physicsBody.affectedByGravity = YES;
self.mainCharacter.physicsBody.mass = 0.02;
}
}
因此,在纵向模式下,一切都完美运作,但在横向模式下情况就变得非常混乱。
我想这与某些相关联,
[self setPhysicsBody:[SKPhysicsBody bodyWithEdgeLoopFromRect:[self frame]]];
奇怪的是,横屏模式下x轴的边界循环(竖屏模式下的y轴)工作正常,但我只是穿过了y轴(竖屏模式下的x轴)。
我猜测框架在某个地方返回了y轴上不在屏幕范围内的位置,这意味着它在屏幕上方或下方...可能是这样...但我不太确定。
然而,我尝试过几种不同的选择,包括手动使用CGRectMake()自己设置矩形,但我无法让任何东西正常工作。
任何建议都将不胜感激!!!