Каким образом определить point_direction у левого стика геймпада XBOX360?
gp_axislh так же как и gp_axislv выводит значения от -1 до 1 Для управления (вверх, вниз, лево, право) все достаточно хорошо работает. А как высчитать угол, что-бы персонаж поворачивался в направлении стика. Как в TDS игрушках.
Добавлено (02 апреля 2017, 09:31) --------------------------------------------- Вроде разобрался! Кому нужно, вот код:
В CREATE объекта:
Код
direction = image_angle; gamepad_set_axis_deadzone(0,0.2); player_speed = 7; //Тут меняем скорость передвижения объекта
Это писать в STEP эвент. Рекомендую в BEGIN STEP:
Код
//Задаем дедзон ( оптимальное значение 0.2 ) var deadzone_limit = 0.2;
//Код передвижения левым стиком if gamepad_axis_value(0,gp_axislv) >= -deadzone_limit && gamepad_axis_value(0,gp_axislv) <= deadzone_limit // Если джойстик не трогаем && gamepad_axis_value(0,gp_axislh) >= -deadzone_limit && gamepad_axis_value(0,gp_axislh) <= deadzone_limit { image_angle = direction; speed = 0; } else // Когда двигаем левый стик { var hlaxis = gamepad_axis_value(0, gp_axislh); // получаем значения по осям Х и У var vlaxis = gamepad_axis_value(0, gp_axislv); direction = point_direction(0, 0, hlaxis, vlaxis); // Поворот в направлении стика speed = point_distance(0 ,0, hlaxis, vlaxis) * player_speed; // плавное движение, в зависимости от силы нажатия на стик }
//Код разворота (при движении) правым стиком if gamepad_axis_value(0,gp_axisrv) >= -deadzone_limit && gamepad_axis_value(0,gp_axisrv) <= deadzone_limit // Аналогично коду выше: Если джойстик не трогаем && gamepad_axis_value(0,gp_axisrh) >= -deadzone_limit && gamepad_axis_value(0,gp_axisrh) <= deadzone_limit { image_angle = direction; } else { var hraxis = gamepad_axis_value(0, gp_axisrh);// получаем значения по осям Х и У var vraxis = gamepad_axis_value(0, gp_axisrv); image_angle = point_direction(0, 0, hraxis, vraxis); // Поворот обьекта правым стиком вне зависимости от направления движения (прицеливание) }
Всем доброго времени суток, Друзья! Интересует вот какой вопрос: имеется ли какой то аналог стандартного Alarm? В step хотелось бы пользоваться чем-то вроде "Ждать 15 секунд, затем..."
Health = 100 if damage = 1 {wait 20, then { health -=1 } }
Что-бы код тормозился и выполнялся далее спустя определенное количество "тиков".
А то стандартных алармов порой не хватает, да и в step немного не удобно их использовать. Кто какие идеи предложит? В справке ничего путного не нашел.
Сообщение отредактировал Grabatrone - Суббота, 18 Февраля 2017, 15:40