Пятница, 22 Ноября 2024, 23:07

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Таймеры
Как реализовать таймер на Game Maker?
1. Единственный правильный способ - использование alarm[] [ 2 ] [22.22%]
2. Таймер без alarm[]? Это реально! [ 7 ] [77.78%]
Всего ответов: 9
HSPДата: Среда, 19 Февраля 2014, 17:15 | Сообщение # 1
почетный гость
Сейчас нет на сайте
На днях повздорил с одним пользователем, в связи с этим решил создать опрос: действительно ли alarm[] - единственный правильный способ создать таймер?
Буду очень рад комментариями, которые тем или иным способом относятся к таймерам.

Очень буду рад, если кто-то поделится примером создания таймера happy


Сообщение отредактировал HSP - Среда, 19 Февраля 2014, 17:39
LunarPixelДата: Среда, 19 Февраля 2014, 17:38 | Сообщение # 2
старожил
Сейчас нет на сайте
Ну это, безусловно, не единственный способ. Как варианты, можно делать расчеты в Step, ведь есть условие, количество шагов равное скорости комнаты - одна секунда.
Можно вообще сделать зависимость от системного времени. Т.е. например, взять текущее время при старте игры и, скажем, в степе поставить проверку, когда стартовое время будет отличаться от текущего на 2 минуты, совершать действие.


HSPДата: Среда, 19 Февраля 2014, 17:41 | Сообщение # 3
почетный гость
Сейчас нет на сайте
LunarPixel, истину глаголишь happy
Спасибо за ваше мнение, оно очень важно для нас, как говорится biggrin


Сообщение отредактировал HSP - Среда, 19 Февраля 2014, 17:41
Quad69Дата: Среда, 19 Февраля 2014, 22:57 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Цитата HSP ()
На днях повздорил с одним пользователем

Я уже даже знаю с кем)

Я где то читал что лучше использовать нормальные события(Создание или alarm[]) они специально для этого созданы и fps при их использовании выше.
Если делать alarm в Step, то проверка будет идти каждый шаг пока объект в котором выполняется событие не будет удалён, а это влияет на Fps
HSPДата: Среда, 19 Февраля 2014, 23:11 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Цитата maksim1221232 ()
Я уже даже знаю с кем)

Ты свидетель biggrin

Цитата maksim1221232 ()
Если делать alarm в Step, то проверка будет идти каждый шаг пока объект в котором выполняется событие не будет удалён, а это влияет на Fps


Да, но мы же можем сделать ограничение, чтобы он не выполнялся каждый шаг, а только тогда когда нам это нужно (столько сколько нужно)? smile

Добавлено (19.02.2014, 23:11)
---------------------------------------------
maksim1221232, я просто хочу узнать альтернативы alarm[]


Сообщение отредактировал HSP - Среда, 19 Февраля 2014, 23:12
zzzzzaДата: Четверг, 20 Февраля 2014, 15:48 | Сообщение # 6
участник
Сейчас нет на сайте
HSP, пойми, что "step" работает постоянно, даже если у тебя условие в step'е не выполняется(то есть ничего не происходит), step все равно работает: проверяет эти же условия и т.д.(событие "Draw" так же работает)

Сообщение отредактировал zzzzza - Четверг, 20 Февраля 2014, 15:48
HSPДата: Четверг, 20 Февраля 2014, 18:44 | Сообщение # 7
почетный гость
Сейчас нет на сайте
zzzzza, бог с ним, пусть выполняется, наверное пустой код жрет очень много памяти?
zzzzzaДата: Четверг, 20 Февраля 2014, 19:39 | Сообщение # 8
участник
Сейчас нет на сайте
HSP, он же не пустой. Если ты имел ввиду маленький, то все равно код есть и он постоянно выполняется. Я не говорю, что без alarm'а нельзя сделать, но если использовать alarm, то производительность будет выше, вопрос лишь в количестве объектов используемых в комнате.
Я когда только начинал изучать GM тоже обходил alarm стороной и выкручивался step'ом, так как не понимал как он работает. Потом задал вопрос здесь на форуме и понял что да как. И скажу, что alarm'ом гораздо удобнее пользоваться.


Сообщение отредактировал zzzzza - Четверг, 20 Февраля 2014, 19:40
HSPДата: Четверг, 20 Февраля 2014, 20:30 | Сообщение # 9
почетный гость
Сейчас нет на сайте
zzzzza, хорошо, я сделаю игру без алармов и посмотрю на FPS, если будет очень маленьким, то заменю все на алармы

Добавлено (20.02.2014, 20:30)
---------------------------------------------
и признаю, что аларм - это догма

LunarPixelДата: Четверг, 20 Февраля 2014, 21:28 | Сообщение # 10
старожил
Сейчас нет на сайте
Ну, в зависимости от ситуации, через системное время можно вообще не задействовать ни step, ни alarm. К пример, есть в игре бонус, который делает прыжок игрока выше. Этот бонус дается на 5 секунд. Допустим, прыжок осуществляется по нажатию на пробел. При всем этом можно поступить так: когда бонус берется, мы сохраняем системное время, а при нажатии на пробел сравниваем его с текущим, если прошло 5 секунд, то бонус не работает. Таким образом, сама игре вообще нигде не будет вести никакого отсчет. Тут, конечно, есть ряд минусов, но вполне себе вариант.

Ну и, раз тут речь идет только про alarm, не стоит забывать про такую штуку, как timeline. smile


ЛеонидДата: Четверг, 20 Февраля 2014, 21:48 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
Я извиняюсь, но мне это уже поднадоело. Как я не пытаюсь втолковать свою точку зрения ПРАВИЛЬНО, ты понимаешь её по-своему.
Я НЕ говорил, что алармы - единственный способ, и не говорил, что это единственны ПРАВИЛЬНЫЙ способ. Я только говорил, что через них опрятнее, удобнее и быстрее (в плане производительности), хоть и не значительно. Зачем надо было такое раздувать, я не понимаю.

Добавлено (20.02.2014, 21:48)
---------------------------------------------
К слову про таймлайны. В игре своей пользуюсь и тем, и другим в зависимости от того, что удобнее использовать. Но вот про системное время впервые слышу, и правда, хорошая альтернатива в некоторых случаях, учту.

HSPДата: Четверг, 20 Февраля 2014, 23:03 | Сообщение # 12
почетный гость
Сейчас нет на сайте
Цитата Леонид ()
учту.

учти
Raven84Дата: Пятница, 21 Февраля 2014, 04:55 | Сообщение # 13
старожил
Сейчас нет на сайте
Цитата
Я где то читал что лучше использовать нормальные события(Создание или alarm[]) они специально для этого созданы и fps при их использовании выше.

Цитата
пойми, что "step" работает постоянно, даже если у тебя условие в step'е не выполняется(то есть ничего не происходит), step все равно работает: проверяет эти же условия и т.д.(событие "Draw" так же работает)

Мне кажется что использование Step и событий одно и то же.Допустим если я в степе пишу keyboard_check_pressed() , то условие на нажатие проверяется каждый шаг.А если я делаю то же самое,но событием Key Press разве это событие не проверяется каждый шаг?! Иначе как GM поймет и вовремя отреагирует когда выполнять тот код,что прописан в этом событии?!

Добавлено (21.02.2014, 04:55)
---------------------------------------------
Или на то,что сделано событием проверка идет реже.К примеру раз в секунду? Но тогда точность нажатия упадет.Реакция то у человека выше одной секунды.


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
LunarPixelДата: Пятница, 21 Февраля 2014, 09:56 | Сообщение # 14
старожил
Сейчас нет на сайте
Raven84, на самом деле, использование события нажатия клавиши быстрее, чем прописать проверку в Step. Тут не нужно строить какие-то умозаключения, просто Step обрабатывается медленнее. Другое дело, что использование Step для проверки нажатия, в ряде случаев, удобнее.

Raven84Дата: Пятница, 21 Февраля 2014, 10:38 | Сообщение # 15
старожил
Сейчас нет на сайте
LunarPixel,
Цитата
на самом деле, использование события нажатия клавиши быстрее, чем прописать проверку в Step.

А где документальное доказательство от самих разработчиков GM? Есть ссылка почитать?


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
Quad69Дата: Пятница, 21 Февраля 2014, 10:47 | Сообщение # 16
заслуженный участник
Сейчас нет на сайте
Цитата Raven84 ()
на самом деле, использование события нажатия клавиши быстрее, чем прописать проверку в Step.

Raven84, Если было бы наоборот, то разработчики не добавляли бы эти события. Какой толк будет?
Raven84Дата: Пятница, 21 Февраля 2014, 11:05 | Сообщение # 17
старожил
Сейчас нет на сайте
maksim1221232,
Цитата
Если было бы наоборот, то разработчики не добавляли бы эти события. Какой толк будет?

Ну тут все очень просто.GM изначально задумывался как инструмент для создания игр БЕЗ ПРОГРАММИРОВАНИЯ.И это все решается с помощью событий.Хотя я сам предпочитаю ими почти не пользоваться.И давно ищу для себя доказательство того,что код в Step "хуже" чем код в событиях.


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
LunarPixelДата: Пятница, 21 Февраля 2014, 11:18 | Сообщение # 18
старожил
Сейчас нет на сайте
Raven84, хм, а в чем проблема, ну вот доказательства:


10 000 объектов с событием нажатия клавиши против 10 000 объектов с проверкой нажатия аналогичной клавиши в Step.
Неужто, так сложно протестировать?!

Как понятно, чтобы заметить разницу, нужно ооочень постараться столько всего в игру запихать, но, тем не менее, разница есть.
+ если я правильно помню, событие нажатия клавиши выполняются до Step, что тоже может иметь значение в некоторых отдельных случаях.


  • Страница 1 из 1
  • 1
Поиск:

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