Я хочу приостановить игру, когда пользователь нажимает кнопку «домой», однако я этого не делаю. Вот что я сделал.Приостановить игру, когда нажата кнопка дома для iphone sdk
Я объявляю переменную NSInteger в AppDelegate называется GameState и определить две константы (kGameStateRunning и kGameStatePaused), чтобы обновить переменную.
Когда viewdidload для моего mainGameViewController, я установил GameState = kGameStateRunning
Так что я хочу сделать здесь, когда пользователь нажимает кнопку дома, pauseView добавляется к текущей mainGameViewController так же, как то, что пользователь увидит когда он нажимает кнопку паузы во время игры, которую я создал.
Я реализую его в функции appdelegate и использует его для вызова метода pauseGame в моем viewController. NSLog показывает, что нажата кнопка дома, но, похоже, она не добавляет представление паузы, которое я создал с ней программно. Это потому, что он не понимает [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];
}
Предположим, что мой pauseView создан в ландшафтном режиме, pauseView.frame = CGRectMake (0,0,480,320), он, похоже, не закрывает окно должным образом. Как настроить ориентацию окна? – Jin