@property (SK_NONATOMIC_IOSONLY, getter = isPaused) BOOL paused;
プロジェクトに追加できるこのコード行を見つけました。どうすればゲーム全体を一時停止できますか?
例えば:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
for (UITouch *touch in touches)
{
SKSpriteNode *pause = (SKSpriteNode*)[self childNodeWithName:@"pause"];
CGPoint location = [touch locationInNode:self];
// NSLog(@"** TOUCH LOCATION ** \nx: %f / y: %f", location.x, location.y);
if([pause containsPoint:location])
{
NSLog(@"PAUSE GAME HERE SOMEHOW");
}
}
}
ご覧のとおり、ボタンを設定しました。選択すると、シーン全体をどのように一時停止しますか?そして、誰かが再開ボタンを押したときにそれを再開します。
OK SO電話するようアドバイスを受けました
self.scene.view.paused = YES;
ここ以外は問題です、私のアプリデリゲートで
- (void)applicationWillResignActive:(UIApplication *)application{
SKView *view = (SKView *)self.window.rootViewController.view;
view.paused = YES;}
そして
- (void)applicationDidBecomeActive:(UIApplication *)application{
SKView *view = (SKView *)self.window.rootViewController.view;
view.paused = NO;
実際にはSKSceneである場合は、タイプSKViewにします。とにかくこれを修正しますか?すべてのコードを再入力して、すべてのシーンをビューにすることを提案しますか?
SKView
の- paused
プロパティを使用:
スイフト:
scene.view?.paused = true
目標C:
self.scene.view.paused = YES;
これにより、すべてのアクションと物理シミュレーションが停止します。
シーンを使用して機能を一時停止
self.scene?.view?.paused = true