У меня проблемы с игрой, и мне было интересно, кто-нибудь может помочь?
Я загружаю наложенное изображение на экран, когда пользователь нажимает на ответ в моей игре-викторине, изображение имеет галочку или крестик, чтобы указать, был ли ответ правильным. Изображение загружается в новую тему.
Проблема в том, что изображение не появляется каждый раз, когда пользователь нажимает на ответ, оно появляется только в 20% случаев за один раунд.
Что еще более странно, так это то, что несколько месяцев назад у меня была игра, готовая для iOS3, и эта проблема не возникала, она только начиналась при обновлении до iOS4.
Вот код:
Изображения создаются в методе loadView:
tick = [UIImageView alloc];
[tick initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 480.0f)];
[tick setImage:[UIImage imageNamed:@"correct.png"]];
cross = [UIImageView alloc];
[cross initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 480.0f)];
[cross setImage:[UIImage imageNamed:@"wrong.png"]];
Нити называются здесь:
-(void)answerAttempt:(UIButton *)b{
ansQues++;
if([b.currentTitle isEqualToString:ans]){
[NSThread detachNewThreadSelector: @selector(showTick) toTarget:self withObject:nil];
[appDelegate playSound:1];
score++;
...
...
...
}else{
[NSThread detachNewThreadSelector: @selector(showCross) toTarget:self withObject:nil];
[appDelegate playSound:0];
}
Вот функция, вызываемая двумя потоками:
-(void)showTick{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[tick setHidden:NO];
[levelPage addSubview:tick];
[levelPage bringSubviewToFront: tick];
usleep(500000);
[tick removeFromSuperview];
[pool release];
}
-(void)showCross{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[cross setHidden:NO];
[levelPage addSubview:cross];
[levelPage bringSubviewToFront: cross];
usleep(500000);
[cross removeFromSuperview];
[pool release];
}
Как вы могли бы сказать по коду, я пробовал разные способы, чтобы каждый раз отображать его, но какое-то время не нашел никакого решения. Я проверил, чтобы убедиться, что каждый раз вызывается правильный поток, и он это делает - просто UIImage для галочки и крестика не отображается.
Пожалуйста, не стесняйтесь задавать любые дополнительные вопросы.
Спасибо.