【发布时间】:2015-06-19 09:29:21
【问题描述】:
到目前为止,游戏以纵向加载:所以主菜单是纵向的,然后游戏主世界(玩家角色在其中漫游的地方)也是纵向的。但是我需要在角色开始战斗时将方向更改为横向模式(此外,当玩家在战斗模式下转动手机时,我不希望手机更改方向并意外将所有内容更改回纵向模式,反之亦然) .战斗模式是另一种在某些触发器上呈现的 SKScene。如何将新呈现的 SKScene 的方向更改为横向?我可以在单个 SKScene 中还是仅在 View Controller 中执行这些更改?这是当前视图控制器代码,关于方向:
-(BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
else
{
return UIInterfaceOrientationMaskAll;
}
}
这是战斗 SKScene 中的当前代码 - 我想强制进入横向模式的代码(结果非常丑陋,因为战斗场景以横向加载但视图控制器仍然认为我们处于纵向...另一个问题是,如果我以任何方式旋转手机,方向会自动旋转。我需要固定方向以重新调整手机移动):
-(void)didMoveToView:(SKView *)view
{
NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
}
【问题讨论】:
标签: ios objective-c sprite-kit orientation