Я хочу приостановить игру, когда пользователь нажимает кнопку «Домой», однако я не могу этого сделать.Вот что я сделал.
Я объявляю переменную NSInteger в appdelegate с именем gamestate и определяю две константы (kGameStateRunning и kGameStatePaused) для обновления переменной.
Когда viewdidload для моего mainGameViewController, я устанавливаю gamestate = kGameStateRunning
Так что я хочу сделать здесь, когда пользователь нажимает домашнюю кнопку, pauseView добавляется в текущий mainGameViewController так же, какпользователь увидит, когда он нажимает кнопку паузы во время игры, которую я создал.
Я реализую ее в функции appdelegate и использую ее для вызова метода pauseGame в моем viewController.NSLog показывает, что кнопка home нажата, но она не добавляет вид паузы, который я создал программно.Это потому, что он не понимает [self.view addSubView: pauseView], если бы я вызывал это в appDelegate.Спасибо за помощь.Вот код
- (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];
}