Исчезания жизней при большом падение!
|
|
MIKEL922 | Дата: Воскресенье, 30 Октября 2011, 20:37 | Сообщение # 1 |
заслуженный участник
Сейчас нет на сайте
| Добрый вечер! Ищу пример, или код! Надо сделать так что бы если персонаж на пример находиться на большой высоте, и падает, то у него исчезала 20% жизней!
Нет не чего не возможного. uncog.ru
|
|
| |
TimKruz | Дата: Воскресенье, 30 Октября 2011, 21:39 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Ну, так чего сложного? Когда персонаж падает, меняется модуль его вертикальной скорости. Т.е. выше прыгаем - дольше падаем - больше ускоряемся - быстрее летим - больше импульс при ударе об землю - больше повреждений организму. Следовательно, повреждения пропорциональны ускорению (энергии, импульсу; это не одно и тоже, но взаимосвязано) в момент времени удара о землю. При касании объекта персонажа какого-либо твёрдого объекта мы обрабатываем ускорение, с которым этот объект двигается, и если оно больше N, то убавляем игроку 20% здоровья (в простейшем случае; в идеале лучше чётко рассчитывать, сколько же нужно убавить), и только потом сбрасываем ускорение (или изменяем, это если объект отскакивает). Код сможешь сам написать. Но намекну: в объекте персонажа на событие "столкновение (например, с платформой)" вставляем кусок кода, в котором тупо проверяем величину ускорения типа «if ускорение>10 then здоровье=-20»). Но лучше усложнить, типа «if ускорение>10 then здоровье=-ускорение*2» - так будет реалистичней, т.к. здоровье будет уменьшаться пропорционально ускорению, т.е. высоте падения.
|
|
| |
Eshford | Дата: Воскресенье, 30 Октября 2011, 21:44 | Сообщение # 3 |
Богиня Гамака ♥
Сейчас нет на сайте
| при столкновении с блоком земли Как-то так, поэксперементируй! Добавлено (30.10.2011, 21:44) --------------------------------------------- TimKruz, опередил!
|
|
| |
FadeBaker | Дата: Понедельник, 31 Октября 2011, 00:29 | Сообщение # 4 |
JavaSE Game Developer
Сейчас нет на сайте
| Мой вариант к вашим услугам (в событии столкновения с платформой): Code if vspeed > 3 { health -= vspeed*5; } vspeed = 0;
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
|
|
| |
|
MIKEL922 | Дата: Понедельник, 31 Октября 2011, 14:03 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| Не все понял! На пример, в коде не заметил кода уменьшения жизней, у моего персонажа он такой (global.hp-=1) и еще то что при каком падение, на пример у меня объект умеет прыгать, не указанно при какой гравитации он теряет жизни!
Нет не чего не возможного. uncog.ru
|
|
| |
LunarPixel | Дата: Понедельник, 31 Октября 2011, 14:28 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| Quote (MIKEL922) На пример, в коде не заметил кода уменьшения жизней, у моего персонажа он такой (global.hp-=1)
Quote (vasyan555) health -= vspeed*5;
Quote (MIKEL922) на пример у меня объект умеет прыгать, не указанно при какой гравитации он теряет жизни Зачем указывать при какой гравитации он теряет жизни?!
Объект падает вниз с ускорением, если это ускорение больше определенного значения, тогда при падении тратятся жизни.
|
|
| |
MIKEL922 | Дата: Понедельник, 31 Октября 2011, 15:35 | Сообщение # 8 |
заслуженный участник
Сейчас нет на сайте
| Сделал вот так: Code if vspeed > 3 { hp-=20 } vspeed = 0; И при падение: Quote ERROR in action number 1 of Collision Event with object object4 for object o_player:
Error in code at line 3: hp-=20 ^ at position 6: Unknown variable hp
Нет не чего не возможного. uncog.ru
|
|
| |
LunarPixel | Дата: Понедельник, 31 Октября 2011, 15:37 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| MIKEL922,
За тебя абсолютно всё писать надо что ли?!
Quote (MIKEL922) в коде не заметил кода уменьшения жизней Quote (MIKEL922) у моего персонажа он такой (global.hp-=1)
|
|
| |
Eshford | Дата: Понедельник, 31 Октября 2011, 16:09 | Сообщение # 10 |
Богиня Гамака ♥
Сейчас нет на сайте
| Quote (LunarPixel) За тебя абсолютно всё писать надо что ли?!
Короче не заморачивайся и пиши так, раз думать разучился... Code if vspeed > 3 { global.hp-=20 } vspeed = 0;
|
|
| |
MIKEL922 | Дата: Понедельник, 31 Октября 2011, 19:09 | Сообщение # 11 |
заслуженный участник
Сейчас нет на сайте
| Вы не так меня поняли, теперь при прыжке у меня тратить 20%, а я имел ввиду если на пример если я с самого верха упал!
Нет не чего не возможного. uncog.ru
|
|
| |
LunarPixel | Дата: Понедельник, 31 Октября 2011, 19:18 | Сообщение # 12 |
старожил
Сейчас нет на сайте
| Все тебя правильно поняли, а вот ты похоже код понять не можешь. Либо что то у тебя там криво сделано.
поставь vspeed > 20, например. Значение это меняй, чтобы регулировать высоту, при падении с которой будут отниматься жизни.
|
|
| |
GameMix | Дата: Вторник, 01 Ноября 2011, 09:49 | Сообщение # 13 |
старожил
Сейчас нет на сайте
| Quote (LunarPixel) поставь vspeed > 20, например. Значение это меняй, чтобы регулировать высоту, при падении с которой будут отниматься жизни. MIKEL922, только, если у тебя есть ограничитель скорости падения, тогда убери его. Обычно ограничитель выглядит так: Code if vspeed > 12 vspeed = 12
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Quad69 | Дата: Воскресенье, 04 Ноября 2012, 15:05 | Сообщение # 14 |
заслуженный участник
Сейчас нет на сайте
| Людиии! помогите мне http://gcup.ru/forum/36-27564-1
|
|
| |
Maxaon | Дата: Воскресенье, 04 Ноября 2012, 15:16 | Сообщение # 15 |
участник
Сейчас нет на сайте
| MIKEL922,Code if vspeed>100500 if !place_free(x,y+1){vspeed=0; health-=health/5;}
|
|
| |