Вторник, 14 Августа 2018, 19:09

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

Меню сайта
Категории каталога
Создание игр [309]
Статьи об общих понятиях связанных с созданием игр.
Программирование [69]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [123]
Статьи о программах для создания игр, уроки и описания.
Софт [27]
Различные программы, в том числе в помощь игроделам.
2D-графика [11]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [10]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [4]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [81]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [63]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Сколько всего игр вы прошли?
Всего ответов: 3632
Главная » Статьи » Создание игр

Практика создания кривых в Game Maker
Здравствуйте! Это небольшое руководство о том, как можно сгладить анимацию в Game Maker`е. Допустим, нам нужно создать качающиеся деревья. Нам понадобиться спрайт дерева. (любого, например елка или береза). Назовем дерево tree01, а "качание" (помощника) helper01

Создадим объекты tree и helper и присвоим им спрайты tree01 (origin у корня) и helper01 (origin по центру) .

В Create к объекту tree запишем такой код:

Код
rot = 0
back = 0


В Step:

Код
if (back = 0) { rot += 0.5 } else {rot -= 0.5 }
if (rot < -5) { back = 0 }
if (rot > 5) { back = 1 }

image_angle = rot


Создаем комнату и ставим туда дерево. Результат, мягко говоря, не слишком впечатляющий. Как только дерево наклонилось на 5 градусов от 90 градусов, оно переключает свое движение в иную сторону. В итоге – на качающееся дерево не очень похоже.

И вот здесь то мы и используем "curves". Это слово значит отнюдь не «курва» а «кривая». Поскольку такого понятия, как «кривая» в Game Maker`е нет, то мы его изобретем. А создавать кривые мы будем через пути.

Удаляем все скрипты с дерева. Пишем заново в Create:

rot = 0
Код
icrvobj = instance_create(0,0,helper)
with (icrvobj)
{
path_start(crv01,1,1,true)
}


В Step:

Код
rot = 4-icrvobj.y/8
image_angle = rot


А теперь создадим путь crv01: (описываю по точкам)

1: (0;0)
2: (32;0)
3: (96;64)
4: (160;64)
5: (224;0)
6: (256;0)

Плюс отключаем closed и включаем smooth curve с precision в 8.

Еще желательно включить в настройках interpolate colors between pixels. А глюк с «прыганьем» rot`а, когда он подходит к 0, я не знаю как решить. Это особенность программы.

Таким образом, мы запускаем объект helper по заданному пути и используем его y координату как наклонение. Почему мы используем лишнюю переменную rot? Как по мне, так лучше экспериментировать с нестандартными переменными, чем со стандартными. Например, нам захочется «присобачить» силу ветра или, например, гравитационные аномалии. Подставляем всё в rot, а в image_angle уже ставим конечный результат.
Категория: Создание игр | Добавил: kukinillo777 (30 Декабря 2014)
Просмотров: 2408 | Комментарии: 6 | Рейтинг: 4.0/7 |
Теги: gm 8.0, кривые, анимация, создание кривых в GM, game maker уроки, новичкам, Game Maker, GML, 2d, Уроки по созданию игр
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Практика создания кривых в Game Maker», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 6
+2-
3 Sanchez06   (31 Января 2015 10:45)
Можно с помощью синуса решить легче.

+0-
4 Tymonr   (02 Апреля 2015 02:49)
Tymonrпорой люди даже не знают, что это

+1-
5 Sanchez06   (02 Апреля 2015 06:02)
А должны, это программа среднего образования.

+0-
6 HaGe   (24 Апреля 2015 18:32)
HaGeфак. а ведь офигенная тема. я в жизни бы не додумался. спс за идею =D

+0-
2 WhoAmI   (02 Января 2015 15:05)
WhoAmIПлагиат...

+1-
1 kukinillo777   (31 Декабря 2014 05:46)
kukinillo777Вопросы можно задать на фоурме: http://gcup.ru/forum/36-42598-1

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • OpenMW
  • Advanced RPG Maker
  • Vizard
  • Quantum Engine
  • Eternity
  • G3D Engine
  • Axiom Engine
  • ScoreDoom
  • Catcake
  • Ogre3D
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2018 Рейтинг