Пятница, 26.04.2024, 02:16
Приветствую Вас Гость | RSS

Light & New Live

Наш опрос

Нравится ли вам работать в нашей системе
Всего ответов: 237

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » 2007 » Сентябрь » 3 » Делаем игровой автомат в Game Maker
14:34
Делаем игровой автомат в Game Maker
Данная обучающая информация повествует о том, как начать создание игр при помощи игрового мотора Game Maker v4.0. Она предназначена в первую очередь для новичков с минимальными знаниями или совершенно незнакомых с компьютерными языками программирования.
Сначала я написал небольшую заметку для одного из форумов по Game Maker, но потом решил, сделать по этой теме полноценный урок и помочь тем самым многим другим, кто хотел бы сделать игру в стиле "Однорукий Бандит".
Этот урок предназначен в первую очередь людям, плохо знакомым с Game Maker, в связи с чем, в нем подробно рассматриваются даже такие элементарные вопросы, как добавление спрайтов и объектов.
В самом начале, разумеется после запуска программы Game Maker, Вы должны создать спрайты для барабанов, в данном уроке, будут использоваться всего 3 барабана.
Поскольку все барабаны совершенно одинаковые, это означает, что мы спокойно можем применить для всех 3 барабанов одну и ту же анимацию.
В окне GameMaker, из меню выбираем (ADD > ADD SPRITE), чтобы добавить в нашу игру спрайт, после этого в открывшемся диалоговом окне выберем нужный файл.
Назовем наш спрайт REEL_ANIMATION
Удостоверитесь, что галочка к окошке TRANSPARENT не стоит, так как функция невидимости нам здесь не понадобится.
Затем нажимаем клавишу EDIT SPRITE, в результате чего откроется окно РЕДАКТОРА СПРАЙТОВ.
Заданный по умолчанию размер холста спрайта очень маленький и для нашей задачи не подходит, поэтому выбираем из меню пункт (TRANSFROM > RESIZE CANVAS).
Введите ширину пикселей (WIDTH PIXELS) как 80, если у Вас стоит галочка в окошке (KEEP ASPECT RATIO), тогда кликнув на (HEIGHT PIXELS) значение высоты автоматически должно измениться на 80, после чего нажимаем клавишу OK.
Кликните один раз на IMAGE 0, чтобы выбрать первое изображение, после чего нажмите на иконке КАРАНДАША на инструментальной панели - откроется РЕДАКТОР ИЗОБРАЖЕНИЯ. Теперь нарисуйте отдельную часть вашего барабана, например: БАР, ВИШНЮ или КОЛОКОЛЬЧИК.
ОБРАТИТЕ ВНИМАНИЕ: было бы правильно записать на листке бумаги, какое изображениеб где расположено в последовательности фреймов анимации барабана, чтобы потом можно было всегда легко проверить, где находится тот или иной фрагмент изображения, например...
0 - bar (бар)
1 - cherry (вишня)
2 - bell (колокольчик)
После того, как Вы нарисовали первую картинку, щелкните на (FILE > CLOSE SAVING CHANGES), в результате чего вы вернетесь в РЕДАКТОР СПРАЙТА. В меню РЕДАКТОРА СПРАЙТА выбираем (EDIT > ADD EMPTY).
Будет создано пустое изображение / фрейм, выберите его и создайте следующий фрагмент изображения для барабана.
Продолжайте добавлять и рисовать фрагменты, пока не сделаете достаточное количество элементов для вашей игры. Но так как в нашем случае мы просто учимся создавать игру - то ограничимся всего 3 элементами.
Нажмите (FILE > CLOSE SAVING CHANGES) и в заключении кликните OK.
Далее мы должны сделать спрайт для кнопки ПУСК - добавим спрайт, как мы делали это раньше (ADD>ADD SPRITE).
Назовем его SPIN_BUTTON, галочку в поле TRANSPARENT убираем.
Отредактируйте спрайт, изменив размер на 80x32, затем нарисуйте вашу кнопку (просто нарисуйте кнопку и напишите на ней слово ПУСК).
Теперь добавьте другой спрайт, назовите его CONTROLLER и щелкните (EDIT SPRITE) как обычно, но на сей раз вместо того чтобы нажать на иконку КАРАНДАША, щелкните на (FILE > CREATE FROM FILE) и загрузите файл PC.ICO, который находится в каталоге "C:\Program Files\Game_Maker4\Sprites\ Various\".
Теперь, используя только что созданные спрайты, можно взяться за создание ОБЪЕКТОВ.
Из меню выбираем пункт (ADD > ADD OBJECT), точно также как и со спрайтами - откроется окно с параметрами объекта.
Назовем первый объект CONTROLLER.
Теперь, в поле с названием SPRITE, оно находится чуть ниже окошка, в котором Вы присваиваете объекту название, щелкните на окошке и выберите спрайт CONTROLLER.
Для людей читающих урок, но еще не знающих - сообщаю что CONTROLLER это основной регулятор, который представляет из себя невидимый объект.
Контроллер должен находится в комнате и его основная задача следить за определенными событиями, начиная от перемещения главного героя до проигрывания музыки.
Теперь Вы знаете, что такое КОНТРОЛЛЕР! Уберите галочку в окошке VISIBLE.
Справа от свойств объекта расположены кнопки событий: CREATE, DESTROY, ALARM 0 и так далее, нас интересует кнопка ALARM 0 - кликите на этой кнопке.
Чуть правее указанных кнопок событий находится белое поле, это то место где производится кодирование для объекта.
Справа от белого поля находится челый набор различных иконок, это так называемые действия, указанная часть окна содержит с правого края несколько вложенных страниц.
Щелкните на ВКЛАДКЕ под названием CODE, список иконок-действий изменится. Вы должны использовать 3 иконку сверху, на ней изображен лист бумаги и называется она "Execute a piece of code".
Нажмите и перетащите указанную иконку на 'белое поле' или как мы ее назвали - область кодирования.
Откроется окно, в котором мы и должны ввести код/сценарий игры.
Ниже приведен код, позволяющий рандомизировать (отображать в случайном порядке) изображения барабанов. Скопируйте весь код (находящийся между словами --- врезка ---), в открытое окно CODE ACTION.
------------------------------ врезка -----------------------------
{
// рандомизируем барабаны
reel1rnd = round(random(3))
reel2rnd = round(random(3))
reel3rnd = round(random(3))
// останавливаем барабаны
reel1.image_single = reel1rnd
reel2.image_single = reel2rnd
reel3.image_single = reel3rnd
// увеличиваем игровой счет в зависимости от барабанов
if (reel1rnd == reel2rnd && reel2rnd == reel3rnd && reel3rnd == 0){score += 1000} if (reel1rnd == reel2rnd && reel2rnd == reel3rnd && reel3rnd == 1){score += 500}
if (reel1rnd == reel2rnd && reel2rnd == reel3rnd && reel3rnd == 2){score += 200}
if (reel1rnd == reel2rnd && reel2rnd == 1 && reel3rnd != 1){score += 100}
if (reel1rnd == reel2rnd && reel2rnd == 2 && reel3rnd != 2){score += 100}
}
------------------------------ врезка -----------------------------
Даже при том, что этот урок нацелен на начинающих, Вы тем не менее должны иметь представление о том, что делает вышеупомянутый код, чтобы осмысленно импользовать его в своей игре.
Не забудьте изменить "[число изображений в анимации]" фрагмент с общим количеством фреймов в анимации вашего барабана, для данного случая это...
reel1rnd = round(random(3))
Строка ниже проверяет, если все барабаны остановились на одном и том же изображении, то увеличивает игровой счет на 1000 очков.
if (reel1rnd == reel2rnd && reel2rnd == reel3rnd && reel3rnd == 0){score += 1000}
Эта строка проверяет, являются ли изображения на барабанах 1 и 2 одинаковыми, а на барабане 3 отличающемся.
if (reel1rnd == reel2rnd && reel2rnd == 1 && reel3rnd != 1){score += 100}
Теперь мы должны создать объект SPIN BUTTON. Как и раньше добавляем новый объект и называем его SPIN_BUTTON, он должен быть видимым (visable), поэтому ставим галочку в данном окне, выберите спрайт SPIN_BUTTON для использования данным объектом.
Теперь щелкните на кнопке LEFT BUTTON в списке событий, после чего перетащите туда иконку "Execute a piece of code" из вкладки CODE.
------------------------------ врезка -----------------------------
{
//начинаем анимацию барабанов
reel1.image_single = -1
reel2.image_single = -1
reel3.image_single = -1
//установливаем alarm0 на контреллере
with(controller){alarm[0] = room_speed*3}
}
------------------------------ врезка -----------------------------
Установка для image_single значения (-1) будет создавать анимацию барабана, по полному кругу.
Строка ниже позволяет нам установить задержку для вращения барабанов и затем остановить их.
with(controller) {alarm[0] = room_speed*3}
Изменение значения 3 на большее/меньшее число увеличивает/уменьшает задержку.
Теперь мы должны добавить 3 объекта барабана.
Добавьте 3 новых объекта и назовите их reel1, reel2 и reel3. Для данных объектов следует выбрать спрайт REEL_ANIMATION.
Наш код прокручивает и остановливает анимацию барабанов, следовательно при запуске игры анимация начнет прокручиваться, и чтобы остановить ее мы используем следующий код...
{
image_single = 0
}
Он должен быть добавлен в событие CREATE для каждого из барабанов.
Теперь мы должны добавить комнату для объектов, выберите (ADD > ADD ROOM).
В левой нижней части окошка ROOM PROPERTIES, вы увидите окошко под названием OBJECT, кликните на нем - выберите объект CONTROLLER и поместите его в верхнем левом углу комнаты (местоположение контроллера ни как не влияет на события в игре).
Затем добавьте объекты барабана, располагая их слева направо.
И в заключении добавьте кнопку SPIN_BUTTON.
В данном месте наша игра готова для тестирования, но в случае если Вы будете непереставая нажимать кнопку ПУСК, вращение барабанов не будет прекращаться, так как в игре отсутствет событие СИГНАЛА позволяющее перезапускающее цикл для бапабанов. Также Вы не будет иметь денег/очков, позволяющих играть.
Чтобы исправить данную ситуацию, мы должны на момент вращения барабанов, отключать кнопку ПУСК.
Это означает, что мы должны слегка изменить существующий сценарий.
Сначала мы начнем с Контроллера.
Дважды щелкните на КОНТРОЛЛЕРЕ из древовидного списка ОБЪЕКТОВ, в результате откроется окошко выбранного объекта.
Кликните снова на кнопке ALARM 0, справа от надписи ALARM 0 находится небольшая кнопка-иконка, нажмите ее и выберите пункт ALARM 1 из списка и затем перетащите в окно кодирования данного события иконку "Execute a piece of code" из вкладки CODE.
------------------------------ врезка -----------------------------
{
//проверяем, есть ли деньги для игры
if (score = 0)
{
str = show_question('играть снова?')
if (str == false){game_end()}
if (str == true){game_restart()}
}
global.spin_enabled = true
}
------------------------------ врезка -----------------------------
Нажмите на кнопку (Ok) чтобы закрыть окно.
Затем мы должны удостовериться, что кнопка ПУСК будет работоспособна после запуска игры.
Чуть ниже кнопки действия LEFT BUTTON вы увидите кнопку действия OUTSIDE, снова кликните на небольшой иконке справа и выберите из списка пункт GAME START.
Перетащите еще одну иконку "Execute a piece of code" в окно кодирования и скопируйте в открывшееся окно следующий кусок сценария.
------------------------------ врезка -----------------------------
{
global.spin_enabled = true
score = 1000
}
------------------------------ врезка -----------------------------
Нажмите на кнопку с зеленой галочкой, после чего нажмите на кнопке (ОК) чтобы закрыть окно с объектом.
Теперь снова откройте окно объекта SPIN_BUTTON, откройте сценарий в действии LEFT BUTTON и измените сценарий на указанный ниже...
------------------------------ врезка -----------------------------
{
if (global.spin_enabled == true)
{
// проверяем, есть ли деньги для игры
if (score = 0)
{
game_end()
}
score -= 10
//отключаем кнопку ПУСК
global.spin_enabled = false
//начинаем анимацию барабанов
reel1.image_single = -1
reel2.image_single = -1
reel3.image_single = -1
//установливаем alarm0 на контроллере
with(controller)
{
alarm[0] = room_speed*3
alarm[1] = room_speed*3.5
}
}
}
------------------------------ врезка -----------------------------
Кнопка теперь будет отключена в течение .5 секунд после того, как барабаны прекращают вращение.
Теперь, когда я помог Вам разобраться с основной частью того, как сделать "Однорукого Бандита", я надеюсь, что вы сможете спокойно продолжить и добавить большее количество функций уже в свою собственную игру.
Просмотров: 20913 | Добавил: Asike | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Поиск

Календарь

«  Сентябрь 2007  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930