Empty Application TemplateからSprite Kitを使う方法は下記サイトが詳しくわかりやすい。その通り行うだけでうまくいく。
ただし、間違って設定をすると、分かりにくいエラーではまるので、起こった問題をメモしておく。
問題
NSInvalidArgumentExeptionでクラッシュ
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setShowsFPS:]: unrecognized selector sent to instance
SKViewを(SKView *)self.viewというキャストする方法で取得するが、下記の場合にエラーが起こる。
- self.viewがランタイム時にSKViewではなくてUIView
- そもそも正しいStoryBoardが使用されていない・読み込まれていない
解決策
下記の点について確認・修正する。
- Storyboardが正しく設定されているか
- StoryboardのView Controllerに作成したView Controllerが設定されているか
- Storyboardで設定したView ControllerのViewがSKViewに設定されているか
参考
http://www.ggkf.com/objective-c/simple-sprite-kit-scene-setup-going-wrong
http://qiita.com/tnantoka/items/5c24e72dc569da1c9b62
画面に何も表示されない時
- FPS等が表示されず、白い画面しか表示されない。下記のメッセージがコンソールに出力されている
Application windows are expected to have a root view controller at the end of application launch
解決策
- AppDelegate.mを修正する
// Before
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
// After
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
return YES;
}