Как отображать текст во время столкновения? - PullRequest
0 голосов
/ 27 декабря 2010

Нужна быстрая помощь.Я создаю свою первую игру Cocos 2D и Box 2D, и мне потребуется помощь в отображении текста во время столкновения.Критерии очень просты.Используя камень и рогатку, мне нужно поразить падающие сверху предметы.Каждый объект имеет свои особенности и особенности.Для одного из них мне нужно реализовать, если камень разрушает более 3 объектов, слово «комбо» должно появиться на экране и постепенно исчезать.Будем с нетерпением ждать вашего ответа и предложений.

С уважением,

Картик

Ответы [ 2 ]

1 голос
/ 26 января 2011
Например,

в cgintersectrect определяет вашу коллизию при обновлении, там вы должны написать такой текст.

Пример кода: -

if (CGRectIntersectsRect(projectileRect, targetRect)) {
                [targetsToDelete addObject:target];
                CCMenuItem *pause_menu = [CCMenuItemImage itemFromNormalImage:@"pause.png" selectedImage:@"pause.png" target:self selector:@selector(pauseGame:)];
                CCMenu *menu = [CCMenu menuWithItems: pause_menu, nil];
                menu.position = ccp(460, 15);
                [self addChild:menu ];
            }   
0 голосов
/ 27 декабря 2010

Кажется довольно простым и простым:

// use this to keep track of how many stones are destroyed, 
// every time a stone is destroyed, increment it by 1
int count = 0;

Чтобы отобразить «комбо», вам нужно использовать графику или метку - это описано в примерах cocos2d, поэтому я не буду объяснять, как это отобразить здесь.

Отсюда, в вашем обратном вызове «tick», просто проверьте значение «count», если оно больше или равно «3» (вашему «магическому» номеру), затем запустите следующую последовательность действий на вашем «combo» "узел.

CCFadeIn *fadeIn = [CCFadeIn actionWithDuration: 0.25f];
CCFadeOut *fadeOut = [CCFadeOut actionWithDuration: 0.0125f];
CCDelayTime *delay = [CCDelayTime actionWithDuration: 0.5f];
[node runAction: [CCSequence actions: fadeIn, delay, fadeOut, nil];

Этот набор действий приведет к исчезновению узла более чем за четверть секунды, подождет полсекунды, а затем исчезнет за одну восьмую секунды. Вы можете настроить время, как необходимо, для вашего кода. Некоторые дополнительные действия, которые вы можете сделать, когда счетчик> 3, перемещает «комбинированный» текст в позицию последнего уничтоженного элемента или рандомизирует его положение, чтобы оно не всегда было в одном и том же месте и т. Д. *

Объект "узел" в примере кода - это CCSprite или CCLabel, который остается добавленным в вашу сцену, но просто переключает его видимость (так как этот элемент будет появляться на сцене чаще, чем "часто", лучше оставить его в сцене и измените его видимость, а не создавайте новый и уничтожайте его каждый раз - если это редкий предмет, просто создайте новый и уничтожьте его ...

...