Суббота, 21 Декабря 2024, 19:53

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Уменьшение здоровья при столкновении
Stalker_ShooterДата: Среда, 05 Октября 2011, 19:19 | Сообщение # 1
3D XNA'шник
Сейчас нет на сайте
Здравствуйте уважаемые пользователи GcUp. У меня к Вам такой вопрос. Конечно, он может показаться простым и детским, но я все никак не пойму...

И так. Я создаю небольшой платформер-файтинг. Система боев реализована там таким образом: Если враг пересекается с ГГ, то у врага проигрывается анимация боя, а у ГГ отнимается здоровье.

Но, как сделать это самое "уменьшение здоровья"? Какой алгоритм нужно использовать? Простой инкремент (--) не идет, так как он уменьшает здоровье слишком быстро, т.е. в коде:

Code

int health = 100;

if (bbHero.Intersects(bbVrag)) //Если ГГ пересекается с врагом

{
         Hero.health -= 1;
}



переменная health станет равна нулю где-то через секунду. Я понимаю, что можно сделать ее равной 10 000, и тогда бой будет более продолжительным, но вот как тогда выводить на экран количество здоровья равное ста?

Вот тут у меня загвоздка. За ранее благодарен всем, кто поможет!

P.S. Программирую на C# + XNA.


*Не убегай от снайпера, умрешь уставшим.
*Мои статьи...
RorschachДата: Среда, 05 Октября 2011, 19:27 | Сообщение # 2
участник
Сейчас нет на сайте
Quote (Stalker_Shooter)
переменная health станет равна нулю где-то через секунду. Я понимаю, что можно сделать ее равной 10 000, и тогда бой будет более продолжительным, но вот как тогда выводить на экран количество здоровья равное ста?

Человек явно перетрудился, здоровье нужно выводить в процентах biggrin

Добавлено (05.10.2011, 19:27)
---------------------------------------------
Или сделать health переменной типа float и уменьшать ее на очень небольшое значение.


Never compromise. Not even in the face of Armageddon.
LunarPixelДата: Среда, 05 Октября 2011, 19:30 | Сообщение # 3
старожил
Сейчас нет на сайте
Можно просто отнимать не 1, а, допустим 0.1 и всё. smile
Ну и переменную тогда задавать не int, конечно. А при выводе здоровья округлять значение до целых.

Или можно делать ограничение, чтобы при соприкосновении отнималась строго 1 если нет ограничения, и после того как 1 вычтена, то ограничение = true, а если соприкосновения нет, то ограничение снова снимается. smile




Сообщение отредактировал LunarPixel - Среда, 05 Октября 2011, 19:32
Stalker_ShooterДата: Среда, 05 Октября 2011, 19:56 | Сообщение # 4
3D XNA'шник
Сейчас нет на сайте
Ок. Всем спасибо! Все понял!

*Не убегай от снайпера, умрешь уставшим.
*Мои статьи...
DemeronДата: Среда, 05 Октября 2011, 20:39 | Сообщение # 5
User created in C++
Сейчас нет на сайте
Code
life_procent=health_now/health_max*100;

Вот тебе рабочий код. Переводит текущее здоровье в проценты.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг