我的游戏是在一个SKScene对象中实现的。按钮(SKSpriteNode)允许用户从横向模式切换到纵向模式。好吧,它应该。但我无法做到这一点。关于这一点有很多讨论,但它们都相当复杂,并提出完全不同的建议。
那么....在SKScene中制作按钮的最简单方法是将方向更改为纵向还是横向?
任何建议都表示赞赏。
答案 0 :(得分:0)
以下是对我发布的问题的简短,完整的答案。
在xcode中,选择File-> New-> Project-> IOS-> Application-> Game,使用带有ObjectiveC的SpriteKit为iPad的游戏生成默认应用框架。这是经典的HelloWorldApp,每当您触摸屏幕时都会出现旋转飞机。
在Targets-> DEploymentInfo-> DeviceOrientation中,勾选Portrait&LandscapeLeft
修改视图控制器的shouldAutorotate,如此...
- (BOOL)shouldAutorotate
{
int currentOrientation = (int)[[UIDevice currentDevice] orientation];
if (scene.orientation != currentOrientation) {
// Rotate the device back to orginial orientation
[[UIDevice currentDevice] setValue:
[NSNumber numberWithInteger: scene.orientation]
forKey:@"orientation"];
return NO;
}
return YES;
}
更改gameScene类中touchesBegan的主体,如此......
-(void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
/* Called when a touch begins */
NSLog(@"%d", self.orientation);
if (!self.orientation || self.orientation == UIInterfaceOrientationPortrait) {
self.orientation = UIInterfaceOrientationLandscapeLeft;
} else {
self.orientation = UIInterfaceOrientationPortrait;
}
[[UIDevice currentDevice] setValue:
[NSNumber numberWithInteger: self.orientation]
forKey:@"orientation"];