Game Maker - создание игр | HellRoom Games
Декабрь 08, 2025, 10:52:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

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

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

API: GameMaker Studio Master
Сообщений: 42



« : Январь 19, 2016, 15:43:14 »

Здравствуйте, если вы это читаете, то мне нужна ваша помощь
Как подсчитать количество сделанных кругов объектом
Может и очень примитивно, но по другому пока что не придумал
Есть скорость вращения spd=14 и я в степе пишу direction+=spd, как мне каждый раз как только объект будет пересекать 360 градусов  прибавлять к переменной кол-во кругов 1 единицу?
Думал if direction>359{peremennaya+=1}, но это работает только если скорость очень низкая, например: 1
Записан

Здесь была моя подпись
Dmi7ry
Гл. Администратор
*

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

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+1000 репутации]За помощь в развитии форума!Знаток Game Maker!За помощь новичкам!
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626



WWW
« Ответ #1 : Январь 19, 2016, 15:48:21 »

Попробуйте что-нибудь вроде этого
Код:
var old_direction = direction;
direction += 14;

if old_direction > direction number++;
переменная number должна быть изначально равна нулю и она содержит количество оборотов.
Записан

- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
Евгений__
Посетитель
**

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

API: GameMaker Studio Master
Сообщений: 42



« Ответ #2 : Январь 19, 2016, 15:50:01 »

Спасибо работает
Записан

Здесь была моя подпись
Neo
*LisenokArtist
GM Pro user
*

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

Пол: Женский
Награды:
За медальки для форума!500 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+150 репутации]
API: GameMaker Studio Free
Сообщений: 971



« Ответ #3 : Январь 19, 2016, 19:00:58 »

У себя на практике так тоже считает обороты, но выражается в суммировании углов.
Код:
angle += angle_difference(direction,angle);
Далее просто делишь на 360.
Записан

Евгений__
Посетитель
**

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

API: GameMaker Studio Master
Сообщений: 42



« Ответ #4 : Январь 19, 2016, 22:13:32 »

Я решил не засорять форум и напишу вопрос здесь
У меня есть два объекта х1 и х2 мне необходимо при нажатии на первый рисовать линию от его координат до координат мыши, а при нажатии на второй рисовать от первого до второго
Это кое как сделал но как быть если у меня этих х1 и х2 много в комнате и мне нужно чтобы рисовалась линия от х1 на который я нажал до х2 тоже на который я нажал а не на всех ?
Записан

Здесь была моя подпись
Fantom
I am... All of me
Гл. Администратор
*

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

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+1000 репутации]За отличные статьи по Game Maker!Тру Админ :DЗнаток Game Maker...
API: GameMaker Studio Master
Сообщений: 5026



« Ответ #5 : Январь 19, 2016, 22:38:24 »

Переформулирую вопрос. Необходимо предоставить возможность игроку связывать линией любой выбранный им объект с любым другим, при этом х1 и х2 - это объекты одного и того же типа. Так? Или всё таки есть группа из х1 и группа х2? Если группами, то для чего это делается?

Добавлено: Январь 19, 2016, 22:46:37
В любом случае, заводить в каждом экземпляре по массиву или списку, в котором будут храниться id объектов, куда вести линию.
Код:
draw_line(x,y,connect[i].x,connect[i].y);
При клике на экземпляр хватать его id куда-нибудь в глобальную переменную, чтобы потом это передать другому.
« Последнее редактирование: Январь 19, 2016, 22:47:18 от Fantom » Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

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