Пятница, 29 Марта 2024, 07:59

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Конфликт между траекторией движения и гравитацией
Конфликт между траекторией движения и гравитацией
GrannerДата: Понедельник, 14 Марта 2016, 11:32 | Сообщение # 1
почетный гость
Сейчас нет на сайте
GM 8 Pro
Есть необходимость заставить объект двигаться по созданной траектории, в зависимости от расстояния до ключевого объекта. Например, ГГ (главный герой) огибает угол по ровной кривой, радиус которой зависит от расстояния между ГГ и точкой угла.
Делал так:
Е-key
Код

x2=skill.x; y2=skill.y;
x1=krur.x; y1=krur.y;
rad=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
ugol=degtorad(10);                  
count=0;
rep=19;
for (i=1;i<rep; i+=1)               
    {                    
    yn=(rad*sin(ugol*i))+y1;        
    xn=(rad*cos(ugol*i))+x1;
       if xn>x2 {instance_create(xn, yn, kapl); count+=1;}
     }
for (i=0;i<count; i+=1)
    {
    near=instance_nearest(skill.x,skill.y,kapl)
    if near.x>skill.x
        {
        if place_free(near.x+2,near.y)
            {skill.x=near.x;
            skill.y=near.y;
            }
        }
    }

Создание траектории и движение ГГ (объекта skill) работает так, как мне нужно, НО!
При переносе в основной проект возникла проблема, ибо ГГ имеет гравитацию и вертикальную скорость. Решал эту проблему добавлением переменной skill.go=true; в вышеуказанный код.
А в Step ГГ добавлял проверку кнопками:
Код
if skill.go is equal to true
      set the gravity to 0 in direction 0
      set variable vspeed to 0

Получилось так - траектория создается нормально, при удерживании E-key ГГ зависает в воздухе (вроде как гравитация и вертикальна скорость отключены правильно), но не перемещается по траектории. Хотя видно, что в нужную сторону ГГ чуть-чуть смещается при каждом нажатии E-key.
Что делать?


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


Сообщение отредактировал Granner - Понедельник, 14 Марта 2016, 11:34
TymonrДата: Понедельник, 14 Марта 2016, 12:43 | Сообщение # 2
With OpenSource forever
Сейчас нет на сайте
If skill.go if equal to true:D

Если вода мокрая...

Только ты же добавил код на смещение на е-кей. Вот ты один раз нажимаешь, он один раж срабатывает. Надо его в степ пихаить


Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы.
Как правильно задавать вопросы в технических форумах
GrannerДата: Понедельник, 14 Марта 2016, 12:48 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Цитата Tymonr ()
If skill.go if equal to true:D

Там просто еще событие было для отпускания E-key: skill.go=false (при отпускании клавиши гравитация и вертскорость возвращались в норму).
А насчет пихания в степ - попробую.


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
TymonrДата: Понедельник, 14 Марта 2016, 14:27 | Сообщение # 4
With OpenSource forever
Сейчас нет на сайте
Granner, я не о том.
Бессмысленно сравнивать булевую переменную с булевым же значением. Достаточно if true/false


Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы.
Как правильно задавать вопросы в технических форумах
GrannerДата: Вторник, 15 Марта 2016, 11:54 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Код перемещения из события E-key перенесен в степ объекта ГГ - и не работает. Результат аналогичный начальному.
И там не нажатие кнопки E, а удержание, то есть может быть степ тут и не нужен?


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

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