[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
форум для геймеров » торрент игры » Игрострой » Туториал по Game Maker для новичков (Создатель туториала lorderon)
Туториал по Game Maker для новичков
#1
Пятница, 30.12.2011, 09:16
Сообщения: 180
Награды: 9
Репутация: 14
Перемнные в Game Maker
Очень важное значение имеют так называемые переменные. Переменные - это ячейки со своими именами, в которые можно записать любое значение. Они бывают двух типов: строковые и вещественные. Важный момент: переменные надо объявлять и называть в событии Create или Game Start - по крайней мере, до того, как они будут использоваться. Это происходит так: money=30. Это значит, что переменная money становится равна 30.

Вещественные переменные
Вещественные переменные содержат в себе числа (любые: и целые, и дроби). К примеру, health=100 - здоровье становится полным (100 очков). Используется очень часто: это и кол-во патронов, и здоровье, и деньги и т.д.

Строковые переменные
Строковые переменные содержат в себе любые символы и записываются через апострофы:name='Чувак'. Может использоваться для ввода имени, для вывода статуса героя и т.д.

Глобальные переменные
Глобальными могут быть и строковые, и вещественные переменные. Глобальная переменная принадлежит не какому-то отдельному объекту, а всей игре сразу - поэтому она не может быть разной у разных объектов. Если какой-то объект переходит из комнаты в комнату, то глобальная переменная со своим значением переносится туда же и используется в новой комнате - очень полезная вещь. Чтобы сделать переменную глобальной, надо записать ее с приставкой global. - например:
global.money=100.

Пользуйтесь переменными и не пропадете!

Окраска
Если у вас есть несколько разных объектов, и их спрайты отличаются только определенным цветом - можно сделать всего один спрайт на всех!
Создайте спрайт.Нужным объектам присвойте это изображение. В Create объектов пишем image_blend=цвет.
Вместо "цвет" пишем нужный цвет по-английски с приставкой c_ (с_green, c_red, c_yellow и т.д.).
Теперь цвет спрайта будет смешан с указанным цветом !
Это может пригодиться вам, например, во флагах (один красный, другой белый, третий синий...), при условии, что древко флага черное.

Все это работает лишь в зарегистрированном Game Maker!

Несколько советов
Если вы хотите, чтобы спрайт поворачивался по направлению героя (бывает полезно в играх с видом сверху) - пишите image_angle=direction и рисуйте спрайт того, кому это делаете, повернутым вправо.

Если надо, чтобы игрок вводил свое имя - пишите name=get_string('Как вас зовут?','' ) и потом пользуйтесь name, скажем так:
show_message('О, привет, '+string(name)+'!' ). Выскочит сообщение с приветствием.

Если нужно, чтобы игрок вводил число, то:vashe_chislo=get_integer('Введите свое число!',0) и пользуйтесь точно также.

Если вы хотите сделать событие, происходящее через время после чего-то, пользуйтесь alarm[0]=сколько надо. Если хотите понять, сколько это время в секундах - просто разделите на скорость комнаты (по умолчанию 30). То есть 120 шагов - это 4 секунды!

Чтобы вывести текст на экран, надо сделать невидимый объект и в событии Draw вписать draw_text('ваш текст' ).

Чтобы рисовать текст по-русски, создайте новый шрифт (скажем, font1), найдите два поля там и в первое пишите 0, во второе 255, а затем в событии Draw вписать draw_set_font(font1)

Чтобы рисовать текст другим цветом, впишите draw_set_color(цвет). Вместо цвет писать цвета с приставкой с_:c_green, c_red, c_yellow и т.д.

Чтобы сделать титры, создайте объект o_titres и поместите в комнату для титров.
У этого объекта в Create впишите y_titres=450.
В событии Draw впишите:
draw_text(150,y_titres,'текст титров' )
y_titres-=1

Чтобы в рисовании текста или выводе сообщения перейти на другую строку, используйте знак #

Чтобы что-то происходило, когда вы шевелите мышкой, то делайте так:
в событии Create
xx=mouse_x yy=mouse_y
в событии Step
if xx!=mouse_x or yy!=mouse_y {происходит то, что надо}
xx=mouse_x yy=mouse_y

Создание текстовых игр
Чтобы создать текстовую игру на ГМ, достаточно одного объекта, одной комнаты любых размеров и вот этих команд:
show_message('Привет!' ) - выводит на экран сообщение (в данном случае "Привет!" ).
команда=show_message_ext('','Да','','.' ) - выводит на экран сообщение с вариантами для выбора (максимум тремя). Вместо "команда" вписываем переменную и потом пользуемся ей для проверки варианта выбора. Пример:

otvet=show_message_ext('Хочешь поесть?','Да','Нет','Не знаю...' )
if otvet=1 {show_message('Угощайся, друг!' )}
if otvet=2 {show_message('Ну как хочешь.' )}
if otvet=3 {show_message('Подумай как следует!' )}

команда=get_integer('Вопрос',0 (это кол-во по умолчанию)) - выводит на экран строку, в которую игрок должен вписать число. "Команда" проверяет вписанное число. К примеру:

zub_number=32
zub=get_integer('Сколько зубов тебе выбить?',0)
zub_number-=zub

команда=get_string('Вопрос','' (это вписанное по умолчанию)) - выводит на экран строку, в которую игрок должен вписать любые символы. "Команда" проверяет вписанное. К примеру:

name=get_string('Как вас зовут?','Безымянный' )
show_message('Что ж, привет, '+string(name))

Также может пригодиться:
команда=show_menu('',0) - выводит список возможных вариантов (разделяются символом |). Команда - выбранный вариант. В отличии от show_message_ext, начинается с нуля! К примеру:
show_message('Выбери оружие!' )
otvet=show_menu('Пистолет|АК|Дробовик',0)
if otvet=0 {oruzhie='Пистолет'}
if otvet=0 {oruzhie='АК'}
if otvet=0 {oruzhie='Дробовик'}

И, наконец, вот команды для окраски вашей текстовой игры:
message_button(спрайт) - кнопка ответа теперь - ваш спрайт
message_size(width,height) - ваш размер окна (стандартный размер - 400 на 300)
message_background(фон) - фон окна меняется на ваш.

Создание RPG
Предупреждение: не буду расписывать отвлеченные вещи вроде рисования спрайтов и создания объектов. Только говорю - все препятствия на пути героя должны быть

с Solid!
Давайте поразмышляем: что необходимо для РПГ? Прокачка героя, разные суперпуперспособности, адекватные сражения и диалоги - правильно? Вот этим и займемся.
В Create пропишем необходимые переменные. Так как в РПГ может быть множество локаций, логично, что переменные эти глобальны (существуют в одном экземпляре и

сохраняются при переходе героя на другую локацию).
Скажем, так:
global.xp=0 //Очки опыта героя
global.level=1 //Уровень
global.maxhealth=100 //Максимальное здоровье, увеличивается при прокачке.
global.mana=100 // Мана
global.maxmana=100 //Максимальная мана, тоже увеличивается при прокачке.
//Также наш герой должен менять одежду, оружие, как в больших РПГ. Пропишем для начала:
global.oruzhie='Кулаки'
global.odezhda='Обноски'
С переменными разобрались. Сделаем герою движение - он не может стоять на месте, верно? Вид у нас будет сверху и движение - с помощью тыканья мышкой.

Создайте спрайт и объект зеленой точки (она обозначает, куда двигается герой). В событии у героя Global Mouse Left (нажатие левой кнопки мыши в любом месте)

ставим:
1)удаление всех объектов зеленой точки;
2)создание объекта этой зеленой точки в координатах mouse_x,mouse_y;
3)движение героя опять-таки в mouse_x, mouse_y.
В столкновении героя с этой самой точкой пишем исчезновение точки и остановку героя (думаю, обойдемся без подробных объяснений).
Теперь в Степе image_angle=direction (у вас должен быть лицензионный ГМ!), чтобы спрайт героя поворачивался в сторону движения. Спрайт должен быть нарисован

изначально повернутым вправо.
Получилось движение героя! Что там дальше? Ну конечно, какая РПГ без сражений с монстрами! Сделать монстра не так уж сложно. Есть кнопка передвижения с

обходом препятствий (Step Towards Point), ее и перетаскиваем монстру в Step, в координаты там пишем: hero.x, hero.y. Перед этой кнопкой ставим кнопку

проверки переменной, в поле переменной пишем "distance_to_object(hero)", а ниже выбираем smaller than и пишем во второе поле, например, 200.
Теперь у монстра есть простенький ИИ - при приближении героя враг начинает бежать за ним.
В Create монстра ставим heal=100 (это его здоровье)
В событии нажатия на монстра (в объекте монстра) ставим примерно так:
if global.oruzhie='Кулаки' heal-=2
if global.oruzhie='Меч' heal-=4
if global.oruzhie='Еще что-нибудь' heal-=7
Естественно, также ставим при столкновении героя с монстром так:
if odezhda='Обноски' health-=1
if odezhda='Плащ' health-=0.6
if odezhda='Еще что-нибудь' health-=0.3
У монстра, кстати, ставим в Степ image_angle=direction (он тоже имеет право поворачиваться, куда хочет ).
Но это не все. Герой еще бессмертный и ему плевать на уменьшение здоровья (как и монстру).
У героя пишем в степ:
if health<=0 {show_message('ЛУЗЕР!!!' )game_end()}
А у монстра
if heal<=0 {instance_destroy() global.xp+=50}

Фу-ух, разобрались. Простенькая игрушка создана. Но это все еще не совсем РПГ. Нужна прокачка, верно?
В степе что-нибудь вроде этого:
if global.xp>=300
{
global.level+=1
global.xp=0
show_message('ВАШ УРОВЕНЬ - '+string(global.level)+'!' )
global.maxhealth+=10
global.maxmana+=10
global.mana+=10
health+=10
}
Это пример прокачки героя - когда опыт больше 299, повышается уровень и максимальные мана и здоровье.

Остались магические способности героя. Рассмотрим, скажем, файерболы.
Пишем в событии глобального нажатия левой кнопки мыши:
if global.mana>=20{
instance_create(x,y,faerball)
global.mana-=20}
у файербола в Create:
move_towards_point(mouse_x,mouse_y,15)
И в столкновении монстра с файерболом:
heal-=30 (или сколько надо)

С заклинанием разобрались, настало время последнего элемента - диалогов. С этим просто. В столкновении героя с НПС пишешь вот (пример):
speed=0 (НПС должен быть solid!)
dialog=show_message_ext('Что вы хотите?','Как дела?','Исчезни','Пока!' )
if dialog=1 {show_message('Да нормально все!' )}
if dialog=2 {with (other) instance_destroy()}
if dialog=3 {show_message('Пока! Удачи!' )}

Предупреждение: везде, где сказано про нажатие кнопки мыши, должно быть именно нажатие (Pressed), а не удержание (Button).

Создание TDS
Виртуальная машинка

Небольшая статья про гонки.
На ГМ можно создать игру любого жанра, без ограничений. В том числе и гонку. Я не буду описывать весь процесс ее создания, а расскажу о создании именно автомобиля. Вид сверху, пространство 2D.
Управление будет стандартным - газ на Up, задний ход на Down, Left/Right - поворот. У машины будет нстоящий тормозной путь, а также время, необходимое для разгона.
В событии Up пишем (скорость может быть другой, на ваше усмотрение)
if speed<8 {speed+=0.4}
В событии Down
if speed>-5 {speed-=0.4}
В событии Step:
image_angle=direction
if keyboard_check(vk_up)=0 and keyboard_check(vk_down)=0
{if speed>0 speed-=0.2
if speed<0 speed+=0.2}
В событии Left
if speed<-1 or speed>1 direction+=5
И, соответственно, в событии Right
if speed<-1 or speed>1 direction-=5
форум для геймеров » торрент игры » Игрострой » Туториал по Game Maker для новичков (Создатель туториала lorderon)
  • Страница 1 из 1
  • 1
Поиск: