Воскресенье, 16 Июня 2019, 19:46

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Исчезания жизней при большом падение!
Исчезания жизней при большом падение!
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
Богиня Гамака ♥
Сейчас нет на сайте
при столкновении с блоком земли
Code
if vspeed>5 {hp-=20}

Как-то так, поэксперементируй! smile

Добавлено (30.10.2011, 21:44)
---------------------------------------------
TimKruz, опередил! biggrin

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.
TimKruzДата: Понедельник, 31 Октября 2011, 11:21 | Сообщение # 5
старожил
Сейчас нет на сайте
vasyan555, принцип ему уже объяснили, а сколько и когда отнимать здоровья он и сам разберётся. huh

Ах да, что-то я всё про ускорение писал, а про скорость забыл совсем. Запутался я в этой физике совсем. sad Да, в общем-то обрабатывается это одинаково, только формула другой будет (в сложном случае).


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 (Alexis-63)
hp-=20


Quote (MIKEL922)
на пример у меня объект умеет прыгать, не указанно при какой гравитации он теряет жизни

Зачем указывать при какой гравитации он теряет жизни?! smile

Объект падает вниз с ускорением, если это ускорение больше определенного значения, тогда при падении тратятся жизни.


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, bag

За тебя абсолютно всё писать надо что ли?!

Quote (MIKEL922)
в коде не заметил кода уменьшения жизней

Quote (Alexis-63)
hp-=20

Quote (MIKEL922)
у моего персонажа он такой (global.hp-=1)


EshfordДата: Понедельник, 31 Октября 2011, 16:09 | Сообщение # 10
Богиня Гамака ♥
Сейчас нет на сайте
Quote (LunarPixel)
За тебя абсолютно всё писать надо что ли?!

biggrin

Короче не заморачивайся и пиши так, раз думать разучился...
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 cry
MaxaonДата: Воскресенье, 04 Ноября 2012, 15:16 | Сообщение # 15
участник
Сейчас нет на сайте
MIKEL922,
Code
if vspeed>100500 if !place_free(x,y+1){vspeed=0; health-=health/5;}
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Исчезания жизней при большом падение!
  • Страница 1 из 1
  • 1
Поиск:

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