![]() |
|
||||||||||
|
|||||
|
Доброе время суток, друзья. У меня следущая проблема:
Я делаю игру. Герой собирает разные бонусы, получает за них очки. Бонусы есть двух стоимостей: 10 и 100 очков. При накоплении к примеру 1000 очков, он должен получить какой-то приз. Очки прибавляются стандартным способом: Ситуация: у игрока, к примеру, 950 очков, он берет бонус стоимостью 100 очков и у него в итоге получается 1050. И life+1 он не получает. Вопрос: как грамотно смастерить код? |
|
|||||
|
ветеран форума
|
перед и после прибавления очков сравнивать Math.floor(score/1000); Если после прибавления увеличилось - надбавляем жизнь.
__________________
4am is time to rock |
|
|||||
|
А можете написать, где это вставить в мой код, я не очень понимаю..
|
|
|||||
|
ветеран форума
|
это там где очки вставляются, в Вашем коде место прибавления очков отсутствует
__________________
4am is time to rock |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 1,724
|
Не понял про что говорит DarkLight (может я туплю), но вот решение (я так думаю):
|
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
Зачем floor?
ZIK68, в вашем варианте после набора 1000 очков любое увеличение счёта будет прибавлять попытку. Последний раз редактировалось VVall; 25.02.2009 в 19:57. |
|
|||||
|
ветеран форума
|
мм, я имел ввиду случай когда 1000,2000,3000 и т п - прибавляется по одной жизни.
__________________
4am is time to rock |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
Для каждой тысячи можно сделать по разному. Зависит от количества очков, которые могут добавиться за один раз. Если в AS есть операция % (должна быть), можно так:
Но если за один раз может добавиться больше тысячи очков, придётся делать сложнее, чтобы добавлялось соответствующее количество попыток. |
|
|||||
|
ветеран форума
|
Не сказал бы что сложнее
даже if-а не нужно, если очки только вверх прибавляются
__________________
4am is time to rock Последний раз редактировалось DarkLight; 25.02.2009 в 21:13. |
|
|||||
if ((getl(posx,posy)==".") and _root["chkdot"+posx+posy]<>".") {_root["Dot"+posx+posy].removeMovieClip(); _root.dot-- _root["chkdot"+posx+posy]="."; _root.score+=10; } if ((getl(posx,posy)==",") and _root["chkdot"+posx+posy]<>",") {_root["Dot2"+posx+posy].removeMovieClip(); _root.dot-- _root["chkdot"+posx+posy]=","; _root.score+=100; |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|