Понедельник, 20 Августа 2018, 15:25

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Проблема с Alarm
Проблема с Alarm
ИнтернетДата: Пятница, 17 Июля 2015, 18:09 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Проблема в том, что мне нужно чтобы у врага востанавливалось здоровье, но вот проблема в
Step я пишу if wr_hp<=300 then alarm[0]=30 ( изначально у врага 400 хп) а в alarm[0] пишу wr_hp+=10 alarm[0]=30 но он не чего не востанавливает в чём проблема?


Сообщение отредактировал Интернет - Пятница, 17 Июля 2015, 18:15
Fill_FreemanДата: Пятница, 17 Июля 2015, 18:31 | Сообщение # 2
почетный гость
Сейчас нет на сайте
может быть в том, что в GameMaker не надо писать then?

Цитата
if wr_hp<=300 then alarm[0]=30


А вообще мой тебе совет. В последних версиях гамака добавлили ПРЕКРАСНЕЙШУЮ функцию дебагинга - ты можешь поставить брекпоинт, запустить дебаг, и затем пошагово, посмотреть почему не выполняется\не вызываестя та или иная функция или почему логика не заходит в блок if. Может быть ты что-то не доглядел, чтото неправильно расчитал или еще милион причин, вплоть до опечатки.

В твоем коде я ошибок не вижу (кроме then, но это скорее всего ты только на форуме ошибся, потому что иначе гамак, скорее всего бы не скомпилировался)




Сообщение отредактировал Fill_Freeman - Пятница, 17 Июля 2015, 18:33
LunarPixelДата: Пятница, 17 Июля 2015, 19:25 | Сообщение # 3
старожил
Сейчас нет на сайте
Fill_Freeman, гамак поддерживает then

Интернет, проблема в том, что твой код в step выполняется постоянно, аларм перезапускается и перезапускается, не доводя свой отсчет до конца. Сделай так:

Код
if wr_hp<=300
if alarm[0]==-1
{
alarm[0]=30
}


FadeBakerДата: Пятница, 17 Июля 2015, 20:07 | Сообщение # 4
JavaSE Game Developer
Сейчас нет на сайте
Можно и без Алармов обойтись.
Create:
Код
recoveryTime = 0;

Step:
Код
recoveryTime += 1;
if (recoveryTime mod 30 == 0 && wr_hp <= 300) wr_hp += 10;


Уроки по 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.
ИнтернетДата: Пятница, 17 Июля 2015, 22:23 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
и ещё парочка вопросиков не по теме созрели.
Можно ли через код в определённое время игры остановить вид и слежение за играком, а то в сражении с главным боссом игры камера не должна ездить, а толко остоватся в координатах экрана.
И 2 как сделать чтобы хп игрока убывало если он находится в определённых координатах ( лазер)


Сообщение отредактировал Интернет - Пятница, 17 Июля 2015, 23:06
Fill_FreemanДата: Суббота, 18 Июля 2015, 08:03 | Сообщение # 6
почетный гость
Сейчас нет на сайте
LunarPixel, ок. Спасибо не знал.


Насчет видов могу опять наврать, но вроде как view_object[] переменная содержит объект за которым вид следит. Поэтому при достижении финального босса, просто сбрось ее.

например, если ты используешь вид с индексом 0 - то так:
Код
view_object[0] = -1;


Про вторую проблему, тут разные способы приходят в голову, в зависимости от того, как ты сделал лазар.

Скорее всего, если у тебя лазер сделан видимым объектом, то можно обойтись чем-то вроде

Код
в Step игрока:
if place_meeting(x, y, obj_laser) {
     hp -= laser_damage
}


ИнтернетДата: Суббота, 18 Июля 2015, 19:57 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Цитата Fill_Freeman ()
Насчет видов могу опять наврать, но вроде как view_object[] переменная содержит объект за которым вид следит. Поэтому при достижении финального босса, просто сбрось ее.

например, если ты используешь вид с индексом 0 - то так:
Код
view_object[0] = -1;

Про вторую проблему, тут разные способы приходят в голову, в зависимости от того, как ты сделал лазар.

Скорее всего, если у тебя лазер сделан видимым объектом, то можно обойтись чем-то вроде

Код
в Step игрока:
if place_meeting(x, y, obj_laser) {
hp -= laser_damage
}


Спасибо за это но я все же догадался про лазер, я сделал с помощью instance_position
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Проблема с Alarm
  • Страница 1 из 1
  • 1
Поиск:

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