所以我和一群学生正在为IOS开发游戏。我们开始时有两个独立的项目,一个是菜单,商店,学分,教程等。
另一个项目将适用于游戏本身,然后通过github将两者合并在一起并附上“播放按钮”。在我们的主菜单上,这是一个带有隐藏控制栏的导航控制器,里面有一个视图控制器。
目前的问题是游戏本身运行良好,但试图将其集成到主菜单项目中会导致游戏崩溃。
- (void)viewDidLoad
{
[super viewDidLoad];
// Configure the view.
SKView * skView = (SKView *)self.view;
skView.showsFPS = YES;
skView.showsNodeCount = YES;
// Create and configure the scene.
SKScene * scene = [MyScene sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
// Present the scene.
[skView presentScene:scene];
}
这是我们游戏视图控制器中的代码。
MainMenuViewController *mainMenu = [[MainMenuViewController alloc] init];
UINavigationController *navCont = [[UINavigationController alloc] initWithRootViewController:mainMenu];
[navCont setNavigationBarHidden:YES animated:YES];
[self.window setRootViewController:navCont];
// Override point for customization after application launch.
return YES;
这是我们的AppDelegate didFinishLaunchingWithOptions
功能
最后:
-(void) startNewGame
{
NSLog(@"Game Started!");
//ViewController *v = [[ViewController alloc] init];
//[self.navigationController pushViewController:v animated:NO];
CGFloat winWidth = [UIScreen mainScreen].bounds.size.width;
CGFloat winHeight = [UIScreen mainScreen].bounds.size.height;
//CGSize s = CGSizeMake(winWidth, winHeight);
SKView *v = (SKView *)self.view;
v.showsFPS = YES;
v.showsNodeCount = YES;
SKScene *myScene = [[MyScene alloc] initWithSize:v.bounds.size];
myScene.scaleMode = SKSceneScaleModeAspectFill;
[v presentScene:myScene];
}
这是我们的StartGame()
功能,在主菜单视图控制器上按下按钮时会调用该功能。
需要做些什么才能让它发挥作用?我担心我们将不得不重写菜单以使它们与游戏兼容....
答案 0 :(得分:0)
错误告诉您,您正试图在UIView上调用方法setShowsFPS,当然,UIView没有这样的方法。显然你的控制器的self.view是一个UIView而不是SKView。您可能没有在故事板中将控制器视图的类更改为SKView。