Воскресенье, 22 Декабря 2024, 12:13

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Конец пути и некнопочный path_endaction в GM 8.0
GrannerДата: Пятница, 01 Апреля 2016, 15:16 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Необходимо сделать, чтобы в конце пути происходило определенное событие (ну там смена спрайта, скачок объекта и пр.) Вроде бы все очевидно, но не работает либо вообще, либо событие происходит в начале пути, а не в конце. Пробовал следующим образом:
Вариант 1 (никакой реакции)
Код
path_start(ogib,80,0,true);
with Braven
    {
    if path_position=1
        {
        Braven.vspeed=-12;
        }
    }


Вариант 2 (через попытку найти координаты последней точки пути и проверку попадания на эти координаты)
Код
path_start(ogib,80,0,true);
nmb=path_get_number(ogib);
koorx=path_get_point_x(ogib,nmb-1); koory=path_get_point_y(ogib,nmb-1); // пробовал и через просто nmb, не nmb-1
if Braven.x = koorx and Braven.y = koory
    {
    Braven.vspeed=-12;
    {

Вариант 3 (на основе сайта yoyo)
Код
path_start(ogib,80,0,true);
if path_endaction=0
{
    Braven.vspeed=-12;
    {

В последнем варианте, разумеется, действие происходит, но в самом начале пути, а не в конце. Прошу помощи с проблемой.


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
OpenGOOДата: Пятница, 01 Апреля 2016, 16:32 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Как то так.
В Create Event объекта Braven
Код
trigger = true;


В Step Event объекта Braven
Код
if (path_position==0) {
  path_start(ogib,80,0,true);
}

if (trigger) {
  if (path_position==1) {
    vspeed=-12;
    trigger = false;
  }
}


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]


Сообщение отредактировал OpenGOO - Пятница, 01 Апреля 2016, 16:34
LunarPixelДата: Пятница, 01 Апреля 2016, 16:44 | Сообщение # 3
старожил
Сейчас нет на сайте
Granner, первый вариант у меня отлично работает.

Запускаем путь в Create: path_start(path0,8,0,1);
И проверяем в Step: if path_position == 1 vspeed=-12;

А зачем там with Braven?

Можно еще воспользоваться событием Other -> End of path и просто в нем прописать Braven.vspeed=-12;


GrannerДата: Пятница, 01 Апреля 2016, 17:14 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Цитата LunarPixel ()
А зачем там with Braven?

От безысходности smile И да, запускать путь через Create у меня не получится, путь создается на наборе случайных пользовательских координат. Но выход ясен и задача решена!:).

OpenGOO, LunarPixel - спасибо и плюсики за помощь.
Честно сказать, боюсь я Step перегружать. Кто может сказать - сколько проверок\действий можно загонять в Step без особого ущерба для производительности? А то у меня там на главном герое уже 6 и я начинаю в ужасе вибрировать smile А ведь еще и противник будет...


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
  • Страница 1 из 1
  • 1
Поиск:

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