Воскресенье, 11 Апреля 2021, 15:27

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » Grabatrone [6]
Результаты поиска
GrabatroneДата: Воскресенье, 02 Апреля 2017, 09:31 | Сообщение # 1 | Тема: Image_angle с помощью стиков геймпада XBOX360
был не раз
Сейчас нет на сайте
Доброго времени суток, друзья!

Каким образом определить point_direction у левого стика геймпада XBOX360?

gp_axislh так же как и gp_axislv выводит значения от -1 до 1
Для управления (вверх, вниз, лево, право) все достаточно хорошо работает.
А как высчитать угол, что-бы персонаж поворачивался в направлении стика. Как в TDS игрушках.

Уже много чего перепробовал. Даже так =D
Код
image_angle =  point_direction (x,y,gamepad_axis_value(0, gp_axislh),gamepad_axis_value(0, gp_axislv))


Помогите, пожалуйста...

Добавлено (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);  // Поворот обьекта правым стиком вне зависимости от направления движения (прицеливание)
}


Пример для GMS: TDS управление стиками джойстика


Сообщение отредактировал Grabatrone - Воскресенье, 02 Апреля 2017, 09:55
GrabatroneДата: Суббота, 18 Февраля 2017, 18:42 | Сообщение # 2 | Тема: Пиксель - арт.
был не раз
Сейчас нет на сайте


Дарю

Можно замутить рогалик...



Сообщение отредактировал Grabatrone - Суббота, 18 Февраля 2017, 22:06
GrabatroneДата: Суббота, 18 Февраля 2017, 17:00 | Сообщение # 3 | Тема: Ждать N-количество времени в Step
был не раз
Сейчас нет на сайте
Спасибо еще раз! Держи, вот, второго гоблина
GrabatroneДата: Суббота, 18 Февраля 2017, 16:34 | Сообщение # 4 | Тема: Ждать N-количество времени в Step
был не раз
Сейчас нет на сайте
AlexanderBekker, Rean,

Большое спасибо! Все доходчиво обьяснили!
Держите вот +сики и этого гоблина!


Сообщение отредактировал Grabatrone - Суббота, 18 Февраля 2017, 16:47
GrabatroneДата: Суббота, 18 Февраля 2017, 15:55 | Сообщение # 5 | Тема: Ждать N-количество времени в Step
был не раз
Сейчас нет на сайте
Цитата
Grabatrone, обрати внимание на инструмент timeline.
Спасибо, но это немного не то =) Я ищу простой способ паузы в коде. "Жди - затем делай"

AlexanderBekker, а как потом вызывать таймер, скажем на 22 секунды в step коде?

А возможен такой вариант?

Создать скрипт с Delay и в step коде обращаться к нему.

Грубый пример:



Сообщение отредактировал Grabatrone - Суббота, 18 Февраля 2017, 16:01
GrabatroneДата: Суббота, 18 Февраля 2017, 15:25 | Сообщение # 6 | Тема: Ждать N-количество времени в Step
был не раз
Сейчас нет на сайте
Всем доброго времени суток, Друзья!
Интересует вот какой вопрос: имеется ли какой то аналог стандартного Alarm?
В step хотелось бы пользоваться чем-то вроде "Ждать 15 секунд, затем..."


Что-бы код тормозился и выполнялся далее спустя определенное количество "тиков".

А то стандартных алармов порой не хватает, да и в step немного не удобно их использовать. Кто какие идеи предложит? В справке ничего путного не нашел.


Сообщение отредактировал Grabatrone - Суббота, 18 Февраля 2017, 15:40
Форум игроделов » Записи участника » Grabatrone [6]
  • Страница 1 из 1
  • 1
Поиск:

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