Недавно я задал вопрос, связанный с внедрением бонусов; однако я решил, что хочу пойти другим путем.
В моей игре у меня бесконечная прокрутка фона и главный герой движется вправо, собирая монеты.
Когда игрок нажимает на синюю монету, усиление, я хочу, чтобы 1. персонаж изменился на синий цвет (у меня есть рамки для этого), 2. фон стал синим и 3. платформа стала синей. (есть изображения для этого); Я хотел бы, чтобы все эти факторы имели место в течение 20-секундного периода времени.
Я планировал сделать это с помощью класса Blue с переменной экземпляра blue (общедоступной переменной), для которой я установил бы YES и NO соответственно (если была выбита синяя монета). ) в других моих классах (класс платформы, класс игрока). Однако это неэффективно и не работает, когда я включаю таймер.
У кого-нибудь есть идея, как реализовать усиление?
Это мой код, когда игрок ударяет по синей монете:
// try remove blue coin
- (void) tryRemoveBluecoin
{
NSMutableArray * currentBluecoinArray = [self getcurrentBluecoinArr];
if(currentBluecoinArray)
{
int playerY = ((CCLayer*)(self.player)).position.y;
for(int x=0; x<[currentBluecoinArray count];x++)
{
CCSprite *bluecoin = [currentBluecoinArray objectAtIndex:x];
if(abs(bluecoin.position.x+bluecoin.parent.position.x-[Player initX])<50)
{
if(abs(bluecoin.position.y+bluecoin.parent.position.y-playerY)<30 && bluecoin.visible && bluecoin.visible)
{
[bluecoin.parent removeChild:bluecoin cleanup:YES];
CGSize winSize = [[CCDirector sharedDirector] winSize];
[[SimpleAudioEngine sharedEngine] playEffect:@"jump.wav" pitch:1 pan:0 gain:1];
// SET BLUE VARIABLE TO YES
NSLog(@"BEGIN BLUE POWER UP EFFECTS FOR 20 SECONDS");
}
}
}
}
[self hitTestOB];
}
Спасибо за любые ваши идеи!