0

私は現在スプライト キット ゲームに取り組んでおり、デリゲートの設定/使用に問題があります。デリゲートの仕組みなどは知っていますが、ユーザーがゲームをプレイできるようにし、一時停止ボタンを押すとゲームを一時停止できるようにしようとしています。次に、UIAlertView を表示して、ニュースレター タイプの「ゲームの再開」または「サインアップ」を求めます。新しい UIViewController が表示される Web サイトがあり、View Controller が開いている間、ゲームを一時停止したいのです。私の問題は、ウェブサイトの操作が完了したときに、その時点でゲームを再開したいということです。私の問題:

  • ユーザーがWebサイトの「閉じる」ボタンを押した後、UIViewControllerを閉じてから、SKScene.paused = noにします。

これは、私がそれを行う方法のコードです。

// in the view controller class
- (IBAction)closeWebsite {
[self dismissViewControllerAnimated:YES completion:nil];
[self.delegate closeWebsiteAndResumeGame];
}

これは、ゲームを一時停止するメインの UIViewController であるクラスのコードです。

// in the main view controller
@interface ADViewController () <ADWebViewViewControllerDelegate>

- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSString *title = [ alertView buttonTitleAtIndex:buttonIndex];
if ([title isEqualToString:@"Resume Game"]) {
    _gamePlay.scene.paused = NO;
}
else {
    // here i load the other viewController
    ADWebViewViewController *webView;
    webView.delegate = self;

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        webView = [[ADWebViewViewController alloc] initWithNibName:@"ADWebViewViewController_iPhone" bundle:nil];
    }
    else {
        webView = [[ADWebViewViewController alloc] initWithNibName:@"ADWebViewViewController_iPad" bundle:nil];
    }
    [self presentViewController:webView animated:YES completion:nil];

}
//_gamePlay.scene.paused = NO;
}

- (void) closeWebsiteAndResumeGame {
   _gamePlay.scene.paused = NO;
}

すべての助けに感謝します

4

1 に答える 1

0

私は答えを見つけました。デリゲートを使用する必要はありませんでした。私がしなければならなかったのは、Interface Builder 内でいくつかの項目をリンクすることだけで、完全に機能しました :)

于 2013-11-09T01:39:03.110 に答える