GameMaker: Монетки, магазины, и всплывающие надписи

Пример экономики для GameMaker
Давайте просто скажем что графика для этого примера взята из "абстрактной" коллекции.

Хотя я сделал этот пример долгое время назад, похоже что вопросы на эту тематику до сих пор задаются довольно часто, и имеет смысл сделать данный пример "находимым" с помощью этой записи.
Пример демонстрирует создание трех основных вещей:
  • Монетки, как подбираемый ресурс.
  • Всплывающий текст, используемый тут для отображения "+1" при подборе монеток, но имеющий много других применений (в том числе и отображение урона).
  • Магазины, продающие игроку полезные (или в данном случае безполезные) предметы за монетки.
В общем, довольно просто, но все равно полезно для тех, кто еще с этим не разобрался.

Скачать GMK

GameMaker: Случайно прокручиваемые символы

Этот пример демонстрирует определенную вещь которую я хотел сделать на протяжении нескольких дней - скрипт для преобразования строк в набор меняющихся случайных символов.

Идея этого эффекта довольно проста - каждый изменяемый символ заменяется другим случайным (рисуемым) символом с такой же шириной (чтобы строка на выходе не меняла своей ширины, оставляя даже некоторый шанс угадать, что было написано изначально).

Для оптимизации процесса рисования кодом генерируется коллекция (ds_map) с информацией о ширине символов для каждого шрифта при первом использовании. Это делает преобразования довольно быстрым даже для GameMaker: Studio с его ограничением в 65000 символов на шрифт.

Программный интерфейс состоит всего из 3 функций, одна из которых - функция инициализации (должна быть вызвана до использования других), одна заполняет таблицу для заданного шрифта (на случай, если вы хотите сделать это вручную при запуске игры) и собственно функция text_rand(string, font), "преобразовывающая" предоставленную строку для заданного шрифта.

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

Скачать GMK

GameMaker: Поле ввода

Есть множества случаев, в которых вам может понадобится дать пользователю возможность вводить текст привычным способом, принимая во внимания системные настройки и предоставляя возможность мелких изменений (таких как передвижение курсора по тексту). Такие случаи включают в себя чаты, консольные интерфейсы, поля ввода текста, и прочее. Этот пример покрывает большинство типичных потребностей для таких вещей довольно коротким (менее 70 строк) и понятным кодом. Он включает в себя следующие особенности:

  • Сохраняет текущий текст при потере фокуса окна. Если вам доводилось работать с вводом текста в GameMaker, возможно вы уже заметили это неприятное стандартное поведение.
  • Позволяет перемещать курсор по вводимой строке (кнопки влево / вправо / home / end)
  • Позволяет удалять символы после курсора с помощью Delete (почему я не вижу этого во многих играх?)
  • Может быть легко модифицирован для добавления дополнительных сочетаний клавиш и функций

Пример включает в себя непосредственное поле ввода и простой список, выводящий вводимые строки по нажатию Enter.

Скачать GMK