Game Maker - создание игр | HellRoom Games
Июнь 19, 2025, 00:38:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: как определить направление движения обьекта  (Прочитано 3190 раз)
0 Пользователей и 1 Гость смотрят эту тему.
гыук
Новичок
*

Репутация: 0
Offline Offline

API: Game Maker 8.0 Lite
Сообщений: 8


« : Ноябрь 20, 2020, 13:03:02 »

ситуация такова у меня есть обьект которий двигается к курсору мышки и есть блок бустрер.
и я хочу чтоб при прохождении блока ускорителя скорость обьекта увеличивалась.
а так как обьект может зайти с любого угла мне нужно както туда добавить вичисление направления чтоб придавать ему скорость в нужном направлении.
Записан
AndrewVideoGames
Главный Модератор
*

Репутация: 821
Offline Offline

Пол: Мужской
Награды:
За постоянность! [500 дней на форуме]За лояльность! [+750 репутации]5000 сообщений!За помощь новичкам!
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316



« Ответ #1 : Ноябрь 20, 2020, 13:07:05 »

Не очень понятна задача, Вы то про расстояние, то про направление.
В любом случае point_direction и point_distance должны Вам помочь.
Записан
гыук
Новичок
*

Репутация: 0
Offline Offline

API: Game Maker 8.0 Lite
Сообщений: 8


« Ответ #2 : Ноябрь 20, 2020, 13:29:04 »

про растояние я вроде не говорил тут по крайней мере...но все равно спасибо за подсказку ,ибо вижу что команд куча, а понять что из нее мне надо покачто немогу.
« Последнее редактирование: Ноябрь 20, 2020, 15:07:51 от гыук » Записан
AndrewVideoGames
Главный Модератор
*

Репутация: 821
Offline Offline

Пол: Мужской
Награды:
За постоянность! [500 дней на форуме]За лояльность! [+750 репутации]5000 сообщений!За помощь новичкам!
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316



« Ответ #3 : Ноябрь 20, 2020, 13:40:08 »

и я хочу чтоб при прохождении блока ускорителя скорость обьекта увеличивалась.
"Прохождение блока ускорителя", чтобы это ни было, ассоциируется с тем, что преодолены какие-то координаты.

Опишите подробнее что вы реализовывайте (скриншот, картинку, схему прикрепите) и помочь будет проще.
Записан
гыук
Новичок
*

Репутация: 0
Offline Offline

API: Game Maker 8.0 Lite
Сообщений: 8


« Ответ #4 : Ноябрь 20, 2020, 15:02:20 »

https://prnt.sc/vmsio8
насчет места установки... я просто поставил самое близкое к старту...
прошу подскажите как сделать одноразовую проверку на контакт ибо его начинает мотать туда сюда в пределах блока ускорителя. я питался ето исправить. менял скоростя, направления.делал через иф и переменную но несработало.или мотает или телепорт.
счас написал чтото вроде проверщика...теперь он вообще не в ту сторону викидивает или неработает.

Добавлено: Ноябрь 20, 2020, 15:11:35
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>

Create Event:
execute code:

var(t)=1;

set Alarm 0 to 25

Alarm Event for alarm 0:
set Alarm 0 to 25
execute code:

var(t)=1;


Collision Event with object obj:
if t is equal to 1
      for all obj: execute code:

motion_set(point_direction(obj.x,obj.y,speder.x,speder.y),+50);
//direction=point_direction(obj.x,obj.y,speder.x,speder.y)
//obj.speed+=10
var(t)=0;
ето ускоритель


Добавлено: Ноябрь 20, 2020, 16:56:03
оствил в итоге
 Collision Event with object obj:
execute code:

obj.direction=point_direction(obj.x,obj.y,speder.x,speder.y);
obj.speed+=4;
 работает 50/50
« Последнее редактирование: Ноябрь 20, 2020, 16:56:03 от гыук » Записан
AndrewVideoGames
Главный Модератор
*

Репутация: 821
Offline Offline

Пол: Мужской
Награды:
За постоянность! [500 дней на форуме]За лояльность! [+750 репутации]5000 сообщений!За помощь новичкам!
API: GameMaker Studio Pro
Деятельность: А я кто? А я руководитель!
Сообщений: 7316



« Ответ #5 : Ноябрь 20, 2020, 17:03:51 »

https://prnt.sc/vmsio8
насчет места установки... я просто поставил самое близкое к старту...
прошу подскажите как сделать одноразовую проверку на контакт ибо его начинает мотать туда сюда в пределах блока ускорителя. я питался ето исправить. менял скоростя, направления.делал через иф и переменную но несработало.или мотает или телепорт.
счас написал чтото вроде проверщика...теперь он вообще не в ту сторону викидивает или неработает.
Достаточно просто: создайте переменную, например, boostSpd = false. При контакте с блоком прописывайте if (boostSpd = false) { obj.speed += 10; boostSpd = true; } А когда контакта нет, пишите boostSpd = false.
Записан
гыук
Новичок
*

Репутация: 0
Offline Offline

API: Game Maker 8.0 Lite
Сообщений: 8


« Ответ #6 : Ноябрь 20, 2020, 18:05:18 »

благодарю вас теперь все работает адекватно
оставляю код решения в теме вдруг комуто пригодится
var b;
b=false;
if not(place_meeting(speder.x,speder.y,obj)){
b=false;
}
if (b=false){
obj.speed+=10;
b=true;
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.084 секунд. Запросов: 29.