ユーザーがホームボタンを押したときにゲームを一時停止したいと思いますが、失敗します。ここに私がしたことがあります。iphone sdkのホームボタンを押したときにゲームを一時停止する
Iはgamestate呼ばappdelegateでNSInteger変数を宣言し、変数を更新するために、2つの定数(kGameStateRunningとkGameStatePaused)を定義します。
ときのviewDidLoad私mainGameViewControllerのために、私は設定gamestate = kGameStateRunning
ので、ユーザはpauseViewがちょうどユーザーが見るもののように、現在のmainGameViewControllerに追加され、ホームボタンを押したときに、私はここで行うありたいもの私が作成したゲームプレイ中に一時停止ボタンを押すと、
私はそれをappdelegate関数で実装し、それを使ってviewControllerのpauseGameメソッドを呼び出します。 NSLogは、ホームボタンが押されたことを示していますが、プログラムで作成したポーズビューを追加していないようです。これは、appDelegateでこれを呼び出すと[self.view addSubView:pauseView]を理解できないためですか?ご協力ありがとうございました。ここにコードがあります。
- (void)applicationWillResignActive:(UIApplication *)application {
if (gameState == kGameStateRunning) {
[self.viewController pauseGame];
NSLog(@"home button pressed");
}
else if (gameState == kGameStatePaused) {
NSLog(@"not running");
-(void)pauseGame{
//pause all functions
NSLog(@"pause");
[gameTimer invalidate];
[hHpointer.packageSpawningTime invalidate];
for (Package *package in hHpointer.packageArray) {
[package.timeSinceSpawn invalidate];
}
//create the view
pauseView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 480, 320)];
[pauseView setBackgroundColor:[UIColor grayColor]];
pauseView.alpha = 0.5;
[self.view addSubview:pauseView];
}
pauseView.frame = CGRectMake(0,0,480,320)でpauseViewが作成されたと仮定しても、ウィンドウが正しく覆われていないようです。ウィンドウの向きをどのように傾けますか? – Jin