Главная » Фильм игра » GameMaker: Советы для новичков

GameMaker: Советы для новичков

GameMaker: Сoвeты для нoвичкoв

#1: Пoпрoбуйтe прoчитaть дoкумeнтaцию

Прeждe чeм гуглить либо спрaшивaть кого-то о дилемме, обязательно проверьте подобающую секцию в документации

она может содержать информацию, которая может посодействовать решить вашу делему.

Документация GMS1

Документация GMS2

#2: Не копируйте код, если вы его не осознаете

Иногда вы просто напросто хотите вынудить что-то работать, вы копируете код и какого-то управления, даже не понимая как, он работает. Кажется что вообще все в порядке, но на самом деле это только лишь увеличивает делему. Вы не сумеете полностью держать под контролем свой проект, если вы не осознаете, как в нём работает какая-либо часть кода.

До этого чем копировать код в собственной проект, попытайтесь хотя бы осознать, как он работает.Прочитайте. Погуглите. Спросите кого-то. Поймите.

#3: Разные значения для разных экземпляров

Представим, вам надо сделать двое противников, первый с 4 HP и 2-ой с 10 HP. Как новичок, вы подумаете, что надо создать конечно еще один объект и изменять HP снутри него. Но данный вопрос разрешено решить проще.

Когда вы располагаете экземпляр снутри комнаты буквально через редактор комнат, вы сможете открыть окно «Код сотворения» (в GMS2 нужно кликнуть два раза) и писать код в нём. Таким образом вы сможете задавать HP экземпляров снутри их кода сотворения.

Через тоже самое окно разрешено изменить размер и поворот экземпляра, и установить уникальный ID, для того чтоб получить доступ к экземпляру буквально через код.

#4: Используйте place_meeting()

Функция place_meeting() может употребляться для проверки столкновений меж объектами. Лучше использовать эту функцию в условии, чем использовать событие столкновения, так как вы сумеете больше держать под контролем работу столкновений.

GameMaker: Советы для новичков

1-ый и второй доводы — это x и y координаты, в коих будет проверятся столкновение. 3-ий аргумент — это объект, с которым станет проверятся столкновение.

1-ый и второй доводы функции обычно устанавливается x и y соответственно. Представим, что геймер находится в комнате, когда производится проверка на столкновение. Это полезно, поэтому что вы сможете проверить, станет ли геймер сталкиваться с объектом, проверив его такими доводами:

GameMaker: Советы для новичков

#5: Лучший метод получения ввода (input)

Многие новенькие используют условия для установки переменных ввода. К примеру:

GameMaker: Советы для новичков

Но конечно есть более обычный способ. Вот, смотрите:

GameMaker: Советы для новичков

Вы понимаете что keyboard_check() возвращает true если нажата определённая кнопка, или возвращает false если она не нажата. Но в GameMaker’е true становится – 1, а false –

0, это просто напросто числа. Потому их разрешено использовать в таком уравнении.

Если нажата правую кнопку, hsp будет равен 1:

GameMaker: Советы для новичков

Если нажата левая кнопка, hsp будет равен -1:

GameMaker: Советы для новичков

И если ни одна кнопка не нажата, hsp станет равен 0:

GameMaker: Советы для новичков

Тоже самое разрешено применить к вертикальному положению:

GameMaker: Советы для новичков

#6: Событие Draw GUI для частей HUD

Для отрисовки HUD’а, некие люди, употребляют объекты, либо отрисовывают их буквально через событие Draw – добавляют их относительные позиции в координаты камеры/вьюпорта.

Снутри события Draw GUI, вам не требуется добавлять позиции камеры для того что бы HUD следовал за ней. Это событие употребляет координаты окна игрушки, вместо координат комнаты. Потому, если вы рисуете что-то в (0, 0), то это станет рисоваться в верхнем левом углу игрового окна, а не комнаты. Так что, вообще все что вы рисуете там, остаётся там: на его позицию не оказывает влияние камера в игрушке. Это как конечно еще один слой над вашей игрой.

#7: Как работают функции сотворения

В этом совете я обращусь к тому, что делает путаницу посреди начинающих разработчиков.

Я говорю о функциях _create. Это функции, кои для сотворения чего-либо (поверхности, буфферов, структур данных и т.д.) и сохраняет итог в переменную.

GameMaker: Советы для новичков

arg — довод

Давайте возьмём перечень структуры данных, как пример. Эта функция делает список и хранит его в переменной, правильно?

Если я создам перечень в локальной переменной, он пропадет в конце действия, потому что переменная является локальной. Фактически так?

GameMaker: Советы для новичков

На самом деле, это работает не так. Всякий раз, когда вы создаёте перечень, он делает его снутри памяти. Конкретно там он и существует. Функция просто напросто возвращает указатель, на перечень внутри ОЗУ. Таким образом, переменная, которую вы используете как «перечень», представляет собою просто указатель, коий позволяет вам получить доступ к фактическому списку в ОЗУ.

Даже если переменная является локальной –

перечень не существует. Помните, что переменная

это просто напросто указатель. Чтоб уничтожить перечень, вам нужно использовать:

GameMaker: Советы для новичков

Эта функция удалит перечень из ОЗУ.

Кроме того, когда вы делаете так:

GameMaker: Советы для новичков

Вы не создаете другой перечень, называемый «list_2», коий совпадает с «list_1». Вы просто напросто копируете значение указателя в эту переменную, потому обе переменные указывают на тот же перечень в памяти.

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

#8: Очистите поверхность, когда вы её создаёте

Когда вы создаете поверхность, она должна быть пустой, фактически так?

Ну, это не всегда так. Смотрите, когда вы уничтожаете поверхность, она высвобождает память, но не очищает её. Если вы создаёте поверхность и она создаётся в том же блоке ОЗУ, где когда-то была поверхность, которая была уничтожена, то содержимое уничтоженной поверхности может перенестись в новейшую.

Поэтому, когда вы создаете поверхность, удостоверьтесь, что вы ее очистили:

GameMaker: Советы для новичков

Понравилась статья, совет - лайкни и оцени поставив звездочку ниже:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Оставить комментарий

Ваш email нигде не будет показан