2013-09-30 3 views
0

Ищете некоторые идеи о том, как реализовать это, необязательно нужен точный код.Статическая синхронизированная петля в объективе-c cocos2d?

Предположим, у меня есть игра, в которой очки хита игрока отображаются на этикетке, скажем, 100HP. Когда он наносит урон, скажем 30 урона, я хочу, чтобы этот ярлык отсчитывался от 99, 98, 97 ... 70. Для выполнения обратного отсчета потребуется 2 секунды, если вы нанесли 30 урона или 3000 урона.

Мне интересно, какой самый эффективный способ получить этот цикл для «плавного» обратного отсчета в течение 2 секунд независимо от того, какой ущерб был нанесен.

ответ

1

Я бы, вероятно, расширил CCLabelSomething, чтобы сделать это, внедряя желаемое поведение. Предложите шрифт с фиксированной шириной, иначе ничего не получится (визуально). Выясните, что является «гладким для вас», то есть сколько обновлений за 2-секундный период. в принятом общедоступном методе setScore запустите запланированный цикл обновления с соответствующей задержкой. В обратном вызове расписания измените текст метки.

сказать 20 обновлений, то есть 10 секунд. Расписание с задержкой .1f между интервалами. После setScore вычислите 'delta' за обновление (currentScore - newScore)/20. Уменьшить текущее значение. Уменьшите значение до newScore по этой дельта. В расписании callBack остановите запланированное обновление, если отображаемая оценка равна newScore.

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