Конфликт между траекторией движения и гравитацией
|
|
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. Прежде чем задавать вопрос - всегда просматриваю форум и справку
|
|
| |