2012-07-25 3 views
0

Я очень новичок в Xcode/программировании и пытаюсь изменить существующий кодXCODE - Как обновить массив?

У меня небольшая проблема, когда у меня на экране есть определенное количество объектов (врагов) в определенное время и не может переопределить их значение , Я поставил своих врагов на 3 с экрана.

Моя цель - изменить количество врагов на основе текущей оценки.

Я приложил фрагменты кода ниже.

int numberOfEnemies; 

if (self.score>=0) { 
numberOfEnemies = 3 
} 

else if (self.score>=100) { 
numberOfEnemies = 4 
} 


// Setup array 

enemyArray = [[NSMutableArray alloc] init]; 

for(int i = 0; i < numberOfEnemies; i++) { 
    [enemyArray addObject:[SpriteHelpers setupAnimatedSprite:self.view numFrames:3 
    withFilePrefix:@"enemyicon" withDuration:((CGFloat)(arc4random()%2)/3 + 0.5) 
    ofType:@"png" withValue:0]]; 
} 

enemyView = [enemyArray objectAtIndex:0]; 

Что мне нужно сделать, чтобы разобрать новое значение numberOfEnemies в массив, когда мои обновления счет?

+0

какой массив? Я думаю, вам нужно будет показать немного больше кода. – pb2q

+0

Код, который вы показываете сейчас, это то, что в какой-то функции обновления? Каков размер массива, содержащий ваших врагов? Я предполагаю, что вы их повторно используете, или они в настоящее время просто статичны/не интерактивны? –

+0

@ pb2q см. Компонент массива обновлений. Надеюсь, это поможет. – Anthony

ответ

0

Я собираюсь перевести наш разговор в ответ, так как я не хочу, чтобы он слишком долго изматывался, и я могу легко редактировать и расширять его.

До сих пор мы установили, что причина, по которой у вас возникли проблемы, заключается в том, что вы выполняете вышеуказанный код в функции viewDidLoad, которая будет запускаться хотя бы один раз, когда приложение будет запущено. Проблема с этим заключается в том, что вы обнаружили, что у вас есть шанс увидеть новый балл, а затем обновить количество врагов.

Я знаю, что петли обновления игр для iOS обычно выполняются в следующей структуре, но я бы рекомендовал найти учебник онлайн, чтобы получить более эффективный/правильный способ сделать это.

Из текущей структуры, я хотел бы взять код у вас есть выше и создать новую функцию из него:

-(void) updateDifficulty:(NSTimer *)gameTimer 
{ 
    //This can be the code you have above for now 
} 

Затем внутри вашего viewDidLoad, я бы поставил следующий код:

-(void) viewDidLoad: 
{ 
    gameTimer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateDifficulty:) userInfo:nil repeats:YES]; 
    [[NSRunLoop mainRunLoop] addTimer:gameTimer forMode:NSDefaultRunLoopMode]; 
} 

Что это значит, он объявляет таймер, который будет отслеживать игровое время, и с тем, как он был объявлен, через каждые 1 секунду он вызовет метод updateDifficulty. Это общая структура, которую вы хотите, но я настоятельно рекомендую вам, например, изучить учебник игры от Ray Wenderlich.

Надеюсь, что это поможет!

 Смежные вопросы

  • Нет связанных вопросов^_^