Суббота, 23 Ноября 2024, 11:24

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Прошу помощи в GMS
Sirius105Дата: Четверг, 02 Октября 2014, 18:19 | Сообщение # 1
участник
Сейчас нет на сайте
Ребят, помогите мне пожалуйста..Третий день уже пытаюсь написать небольшой скрипт поведении сферы. Задолбался уже, задача вроде бы не сложная, но нормально реализовать ее не могу..не получается. fear

Вот сморите...Есть обычная сфера (шарик, квадрат да ч.у.), он движется в случайном направлении (с центра экрана например), с определенной скоростью..Так вот я хочу сделать так чтоб если на него нажать левой (правой) кнопкой мыши и не опуская подтолкнуть куда то в другую сторону и отпустить, то он уже двигался в сторону куда мы его толкнули..Надеюсь понятно объяснил. Сделайте небольшой пример в gms пожалуйста, буду благодарен.. ну или хотя бы тут объясните кто как может.. sad

Добавлено (02.10.2014, 18:19)
---------------------------------------------
UP

Сообщение отредактировал Sirius105 - Четверг, 02 Октября 2014, 04:57
LunarPixelДата: Четверг, 02 Октября 2014, 18:35 | Сообщение # 2
старожил
Сейчас нет на сайте
При клике мышкой по шарику сохраняй координаты мыши в переменных. При отпускании, сравнивай, при необходимости, текущие координаты мыши с сохраненными, чтобы определить был ли сдвиг. Ну и там же, при отпускании, через point_direction получай направление между старыми и новыми координатами мыши, заноси его в direction шарика и давай шарику скорость speed и все.

При клике на шарик:
Код
xp=mouse_x
yp=mouse_y


При глобальном отпускании клавиши мыши:
Код
direction=point_direction(xp,yp,mouse_x,mouse_y)
speed=5


Sirius105Дата: Пятница, 03 Октября 2014, 01:04 | Сообщение # 3
участник
Сейчас нет на сайте
Спасибо..Сейчас попробую!

Добавлено (03.10.2014, 01:04)
---------------------------------------------
Вроде работает..НО, если сфер несколько, при отпускании остальные тоже меняют направление...Как обойти данную проблему? То есть чтоб на других не распространялось...

XDominatorДата: Пятница, 03 Октября 2014, 13:17 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
В create заводишь переменную - например pressed и released. По умолчанию они = false; Первая у нас будет отвечать за то зацеплен объект в момент времени или нет, а вторая поможет определить что объект был отпущен, но действий мы еще не предпринимали

В mouse_pressed:

Код
pressed = true;


В global mouse released

Код
if pressed released = true
;

А теперь работаем чисто в степе

Код
if pressed
{
     x = mouse_x;
     y = mouse_y;

     if released
     {
         direction = point_direction(xprevious, yprevious, x, y);
         speed = point_distance(xprevious, yprevious, x, y);
         released = false;
         pressed = false;
     }
}


Попробуй


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
  • Страница 1 из 1
  • 1
Поиск:

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