Понедельник, 25 Ноября 2024, 19:14

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Урок-статья по созданию игр Hidden Object
AltairSДата: Воскресенье, 09 Января 2011, 18:48 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Автор:AltairS
Дата:09.01.11
Конструктор:Scirra Construct
Исходник:Скачать

Данная статья написана специально для пользователей GcUp.ru и автором является AltairS (то есть я). Запрещено копирование/частичное редактирование/редактирование статьи без указания ссылки на данную страницу и указания автора!Уважайте чужой труд!

Приветствую, это мой первый урок или статья, назвать можно по разному, но суть одна. В данном уроке мы рассмотрим элементарную и основную механику игр жанра Hidden Object.

Чему мы научимся в этом уроке:
1.- Собственно создадим саму механику игр данного жанра.
2.- Создадим простую систему интерфейся, который "сворачивается" и "разворачивается".
3.- Систему очков.
4.-Систему "времени" ( спасибо allxumuk happy )

Итак, первым делом запустим Scirra Construct (я использовал версию 0.99.96 ). Далее мы нажимаем Файл-->New-->New Direct-X game.
Далее заходим в Layout Properties,там можно выставить размеры комнаты. В своем примере я выставил такие настройки (см.спойлер) :

Так вот, когда вы установили нужные для себя настройки, мы пойдем дальше. И так, что нам нужно? А нужен нам фон для нашей игры, в Google в сможете найти множество подходящий фонов, ну или как вариант нарисовать сами, это уже вопрос лени smile Двигаемся дальше, теперь нам нужны элементарные вещи которые мы на экране собственно и будем "искать". Я взял футбольный мяч, "бутыль вина" и ручку.


Мы с вами еще не закончили подготовку к созданию урока, и нам понадобится нарисовать "фон" для интерфейся, и простую кнопку "сворачивания" интерфейся, у меня в примере они выглядят вот так (см. спойлер):

Итак теперь переходим непосредственно к самому интересному, а именно к созданию игры.
Расположите ваш "фон комнаты" на слое. Для этого нажмите правой кнопкой мыши и выберите "Insert an Object", теперь выбирайте, либо "Sprites", либо "Background".
Если размер вашего "фона" больше размеров "комнаты", и вам лень открывать графический редактор и устанавливать размеры, то выбирайте "Sprites", так как он "растягивает" вашу картинку в любимые размеры, а если вы выберете "Background", то "растягивая" картинку она будет "размножаться" (посмотрите сами happy ).
Так, теперь "создадим" ваши "мячики,ручки и тд" или то, что вы выбрали для своей игры на нашем "слое". Я вам рекомендую "делать" игровые предметы на отдельном от фона слое, так же и с интерфейсом, это поможет вам не запутаться.


Теперь вам нужно "разместить" свой интерфейс в то место, куда вам это покажется нужным (добавляем его также, как и игровые предметы). У меня это получилось вот так:

Важно:Кнопку,которая будет "сворачивать" интерфейс нужно "располагать" отдельно от "фона" интерфейса, то есть отдельным "спрайтом".
Сейчас опять нажмем правой кнопкой мыши и создадим объект "Text", расположите его на вашем интерфейсе.
Важно:Файл "Text" должен располагаться на том же слое, что и ваш интерфейс!
Перейдите в настройки файла "Text" во вкладку "Common" и назовите его (в моем случае) "balltext",а во вкладке Properties впишите (в моем случае) мяч, то есть, у меня есть объект "мяч" с которым мы будет "действовать", поэтому я так и назвал. Если у вас другие предметы, то назовите файл "Text" по своему. Расположите его в "интерфейс". Тоже самое проделайте с имеющимися у вас предметами в игре. Я создал "balltext", "ruchkatext", "vinotext".(см.спойлер):

Теперь создадим еще два объекта "Text". Один назовем "Score" ( от англ. "Очки" ),и "Time" ( от англ."Время" ), их тоже расположите на "интерфейсе" так как вам удобно.
Теперь снова нажмите правую кнопку мыши, и создайте "объект Mouse & KayBoard ", он вовсе не визуальный объект, а позволяет вам создать в вашей игре управление с помощью "клавиатуры и мыши". Далее перейдите во кладку "Project", там найдите "вкладку Global Variables" и создайте новое глобальное значение, назовите его "Score" в поле Type должно быть "Number", а в поле Initial должно быть "0" ( это начальное число значение в нашем глобальном значении ). Далее нажмите левой кнопкой мыши по "тексту названому Time", и откройте вкладку "Private Variables" ( это почти тоже значение что и "Global", но будет действовать локально, то есть только для данного уровня/комнаты и только для выбранного "объекта" ). Добавьте нажав "add" в появившемся окне введите название "Time" а в Initial Value значение 20 ( это время которое будет даваться на нахождение объектов, и по его истечению вы проиграете, цифра может колебаться по вашему желанию ).

Теперь переходим во вкладку Event Sheet Editor (смотрите вниз), и там создадим "группу событий" и назовем её Action( для этого нажмите правой кнопкой мыши и выберите "Insert Group", а в поле "Name" введите Action или ваше название, в этой "группе событий" будут происходить основные события).
В созданной группе событий (Action), создайте событие (правой кнопкой мыши по "группе" и выбрать "Insert New Event"). В появившемся окошке выбираем "MouseKayBoard" далее "On object clicked" и выбираем игровой предмет ( я выбрал "мяч") и нажимаем "Finish". Теперь к этому событию создадим действие, нажав "New Action". Выбираем "System"-->Add to Value. В поле Variable выбираем нашу глобальную переменную "Score", а в поле Value количество очков которые будут даваться за "нажатие на объект"( в моем случае это 10 ). Опять нажимаем New Action выбираем нужный нам объект ( я выбрал ball ), далее "destroy" (то есть при нажатии на наш объект нам дадут очки, и объект исчезнет). Ту же "операцию" проделываем ( в моем случае ) с "balltext". У нас должно получиться :


Те же операции проделайте с остальными объектами в вашей игре.

Идем дальше!=)
Теперь создайте событие "MouseKayBoard"-->"On Object clicked" и выберите "кнопочку" которую вы заготавливали для "свертывания" интерфейса, у меня это выглядит так (см.спойлер):


Для нее создайте действие ( New Action ) -->Фон вашего интерфейса-->Set visible-->и в пункте "Visibility" поставьте "Invisible". То есть при нажатие на вашу кнопку, фон интерфейса "скроется". Те же самые действия проделайте для всех объектов расположенных "на фоне интерфейса".Теперь в этом же "Event'е" создайте действие для вашей "кнопки свертывания интерфейса и выберите "Set position " и установите нужные вам координаты куда сместится "кнопка" при закрытом интерфейсе, в моем случае это Х=630 Y=468.

Теперь для всех "предметов" на интерфейсе (и фон интерфейса тоже) проделайте то же, что мы делали для их "скрытия", только на этот раз поставьте "Visible".
Создайте такое же "действие для кнопки скрытия интерфейса", только установите координаты в которых она стояла "изначально", в моем случае это X=500 Y=468.

Сейчас создайте новый "Event" и выберите "Always". Создайте "Action" для него выбрав текст "Score" а для него "Set text" , "внизу" выберите "System" а там "Get Global Variable", у нас появилось "global('Variable name')". Вместо "Variable name" впишите "Score". Этим мы добились, что у нас будут выводиться "набранные" нами очки. Теперь в этом же "Event'е" создайте "Action" для текста "Time" --> Set text, "внизу" выбираем "Time"--> Get Private Variable ,и вместо "Value" вписываем "Time". Должно получиться так :


Для этого события создайте под событие (правой кнопкой мыши по нужному нам "Event'у" и Insert sub Event ).В нем выберите System-->Every X Milliseconds в значение ставим 1000 (то есть 1 секунда).Для этого под-события создайте "Action", выберите "Time" текст, далее "Substruct from value" в поле Value поставьте "1". То есть у нас каждую секунду будет уменьшаться на "1" время данное на "поиск предметов".
Теперь перейдите во вкладку "Project" и создайте новый слой, и назовите его "Game Over" , так же создайте слой и назовите его "You Win".
Перейдите в "редактор событий".Создайте новый "Event", выберите "Time" далее "Compare privat variable", и в поле Value введите 0. Создайте для этого события "Action", выберите "System"-->Go to Layout, в поле "Layout" введите 2 (это номер вашего "лайота" на который вас переместит если за отведенное время вы не нашли все "объекты" в комнате, мы назвали такой "лайот" Game Over. "Обустройте его сами", расположите надпись "Вы проиграли" и т.д и т.п ).
Теперь создайте Event, выберите "System"-->Compare Global Variable", в поле "Compare to" введите ( в моем случае) значение 30, это максимальное число очков которое можно набрать в "комнате". Создайте для него "Action", "System"-->Go to Layout и в поле "Layout" поставьте (в моем случае) значение 3. То есть, при нахождение всех объектов в "комнате" вас перекинет на "лайот" который мы назвали You Win (Обустройте его как вам заблагорассудится).

Вот и подошел к концу наш урок, мы с вами научились создавать простейшую механику игры жанра Hidden Object! Удачи вам в ваших проектах и разработках!)

От автора:Я не старался сделать в моем уроке/примере "убер" графику. Целью урока/статьи было научить пользователей создавать в своих играх простейшую механику "Hidden Object".


Моя статья по созданию Hidden Object игр

Дедушка,я тебя никогда не забуду,покойся с миром...


Сообщение отредактировал AltairS - Понедельник, 10 Января 2011, 11:33
allxumukДата: Воскресенье, 09 Января 2011, 18:59 | Сообщение # 2
старожил
Сейчас нет на сайте
Надо бы скрины перезалить.

Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
AltairSДата: Воскресенье, 09 Января 2011, 19:01 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
allxumuk, спасибо, не заметил.

Моя статья по созданию Hidden Object игр

Дедушка,я тебя никогда не забуду,покойся с миром...
allxumukДата: Воскресенье, 09 Января 2011, 19:25 | Сообщение # 4
старожил
Сейчас нет на сайте
Ещё пару скринов пропустил, а остальные не грузятся, но это уже наверное у меня косяк с и-нетом. Сейчас нет времени, завтра почитаю.

Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
AltairSДата: Воскресенье, 09 Января 2011, 19:29 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Исправляю скриншоты. Почему то работают только те, которые на "radikal" залил, а на других хостингах которые, отображать не хочет...
PS Radikal как на зло "тормозит" sad


Моя статья по созданию Hidden Object игр

Дедушка,я тебя никогда не забуду,покойся с миром...


Сообщение отредактировал AltairS - Воскресенье, 09 Января 2011, 19:33
XPlayДата: Воскресенье, 09 Января 2011, 19:49 | Сообщение # 6
творец
Сейчас нет на сайте
AltairS, отличный урок, хоть и в плане реализации несложно.Но для новичков то что нужно.Советую на оф. сайте опубликовать в уроках. smile
ЗЫ: У меня чего то некоторые скрины не хотят грузиться. sad


Бек :)

Сообщение отредактировал XPlay - Воскресенье, 09 Января 2011, 19:51
ezhickovichДата: Воскресенье, 09 Января 2011, 19:52 | Сообщение # 7
[Великий и могучий хозяинъ]
Сейчас нет на сайте
У меня всё ок... happy


Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
AltairSДата: Воскресенье, 09 Января 2011, 19:59 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
XPlay, я писал для новичков...Просто, я видел уже несколько тем с этим вопросом...)
Спасибо, если ты думаешь, что стоит выложить, тогда попытаюсь=)
PS Все скриншоты поправил


Моя статья по созданию Hidden Object игр

Дедушка,я тебя никогда не забуду,покойся с миром...
Ilyko96Дата: Воскресенье, 09 Января 2011, 21:31 | Сообщение # 9
почетный гость
Сейчас нет на сайте
Молодец!!!!
Отличный урок!
Для людей, только что пришедших в конструкт - самое то!




МОЙ КАНАЛ
AltairSДата: Воскресенье, 09 Января 2011, 21:36 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
Ilyko96, спасибо happy

Моя статья по созданию Hidden Object игр

Дедушка,я тебя никогда не забуду,покойся с миром...
noTformaTДата: Вторник, 11 Января 2011, 16:34 | Сообщение # 11
Ukrainian independent game developer
Сейчас нет на сайте
За то что учишь новичков +1, давненько хотел попробывать этот констракт, но все никак руки не доходят sad

@noTformaT
EvkoevДата: Вторник, 11 Января 2011, 17:05 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
AltairS, хороший урок.
Но! К сожалению с помощью него не сделать полноценный аналог "алаваровских" "я ищу".
Ты забыл важнейшие детали таких игр - предметы всегда разные при перезапуске уровней, то есть выбираются в список рандомно и реакция на клик по неправильному предмету. Ты или я сделаем это, а вот амбициозные новички, на которых рассчитан урок застопорятся.
Статья качественная, но дополнить её не помешало бы.
ImalterДата: Вторник, 11 Января 2011, 17:15 | Сообщение # 13
частый гость
Сейчас нет на сайте
Quote
AltairS, хороший урок.
Но! К сожалению с помощью него не сделать полноценный аналог "алаваровских" "я ищу".
Ты забыл важнейшие детали таких игр - предметы всегда разные при перезапуске уровней, то есть выбираются в список рандомно и реакция на клик по неправильному предмету. Ты или я сделаем это, а вот амбициозные новички, на которых рассчитан урок застопорятся.
Статья качественная, но дополнить её не помешало бы.

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

Сообщение отредактировал Imalter - Вторник, 11 Января 2011, 17:16
EvkoevДата: Вторник, 11 Января 2011, 17:25 | Сообщение # 14
заслуженный участник
Сейчас нет на сайте
Quote (Imalter)
Ну новичкам наверно рановато пытаться забороть Алавар, а немного разобравшись в констракте можно уже и самому придумать способ довести игру до ума.

Что? А зачем "забороть алавар"?
Я имею в виду стандарты игры данного жанра, как потеря жизни при столкновении с шипами в платформере или наличие прицела в ФПС.
ImalterДата: Вторник, 11 Января 2011, 18:22 | Сообщение # 15
частый гость
Сейчас нет на сайте
По-моему это уже немного другой уровень. Тебе скорее всего просто и так понятно все, что изложено в уроке и хочется немного большего. Для начинающего же и этого может оказаться много. Урок по полноценной Hidden object это не совсем то же самое, что урок для начинающих, но это мое мнение.
AltairSДата: Вторник, 11 Января 2011, 18:46 | Сообщение # 16
заслуженный участник
Сейчас нет на сайте
Ну если писать "полный" урок по "поиску", то мне придется опускать такие моменты подробного описание ( жмем правую кнопку мыши, Insert New Event и тд...) собственно новички "застопорятся", я думаю почитав статьи на русском сайте ScirraConstruct.ru разберутся в "происходящем", это в принципе реализуется не так уж и сложно... Мне сейчас интересна тема игр "Три в ряд"...

Моя статья по созданию Hidden Object игр

Дедушка,я тебя никогда не забуду,покойся с миром...
LaushДата: Пятница, 17 Февраля 2012, 18:48 | Сообщение # 17
почти ветеран
Сейчас нет на сайте
Передались исходник нужном вроде бы

[PC/Android/iOS/WEB] 30 Days to survive
[PC] Dead Defense
[PC] Саламандра - история пирата
jorjiДата: Вторник, 05 Июня 2012, 14:53 | Сообщение # 18
участник
Сейчас нет на сайте
У меня скрины работают.Кстати спасибо за урок!
Автор молодец посторался)
sem6666Дата: Вторник, 31 Июля 2012, 13:58 | Сообщение # 19
участник
Сейчас нет на сайте
AltairS урок хорош. Но можно дополнить, чтоб вещи в случайных координатах появлялись?
saind-47Дата: Четверг, 04 Октября 2012, 13:46 | Сообщение # 20
уже был
Сейчас нет на сайте
sem6666, Laush,
вы на дату посмотрите biggrin

спс за урок(хоть и старенький он)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг