[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Игра "Лови фрукт"
EvilAdminДата: Вторник, 15.12.2015, 10:37 | Сообщение # 1
Учитель
Группа: Администраторы
Сообщений: 310
Репутация: 0
Статус: Offline
Игра "Лови фрукт"



Исходник игры: СКАЧАТЬ

На этом уроке вы узнаете:
- Как делать управляемого персонажа
- Как добавлять в игровую зону объекты
- Программируем падение объектов
- Ловим объекты

Если писать коротко, то этот урок будет описывать основные методы работы игры, такие как столкновения, движение, создание объектов и вставка объектов из библиотек.
 
EvilAdminДата: Вторник, 15.12.2015, 11:35 | Сообщение # 2
Учитель
Группа: Администраторы
Сообщений: 310
Репутация: 0
Статус: Offline
Создание управляемого персонажа


Первым делом, мы должны найти подходящего персонажа для нашей игры , коим мы будем управлять. Мало кто знает, о существовании в ClickTeam Fusion 2.5 библиотек. Там вы можете найти уже анимированных игровых персонажей, заготовки для фона, и много чего полезного.

Нам нужен спрайт персонажа, который есть в библиотеке по адресу "Local Library -> Games -> Characters -> General - Sports people", где выберем и перенесём на рабочую область объект Runner. Это и будет наш игровой персонаж.


Так как мы хотим управлять персонажем в игре, следует задать ему тип движения, для этого перейдём в левой панели свойств на вкладку Movement. В свойстве Movement type, выберем тип Eight Directions. Данный тип программирует движение в 8 направлениях, но столько направлений нам не надо. Поэтому нам нужно, ограничить движения по некоторым направлениям.


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


Кроме этого, измените скорость персонажа на 32. Мы же не хотим, чтобы игра была слишком легкой?
Если мы откроем нашего персонажа, через графический редактор, то мы увидим фреймы. По сути каждый фрейм, это отдельный кадр движения, вместе же они образуют анимацию. Так что нам не стоит волноваться, о редактировании или изменении данного объекта. Оставим как есть. Теперь же мы можем протестировать приложение, чтобы удостовериться в правильности введённых нами настроек (F8).

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

Создадим новое состояние для объекта Runner, через вкладку Position -> Test position of "Runner".


В появившемся окне, нажмите на стрелки, которые указывают на движение за кадр. В нашем случае мы нажимаем на стрелки, отмеченные красным кружком:


Мы создали условие в котором определяется наличие нашего объекта за пределами игровой зоны. Теперь же нам осталось в настройках движения объекта на данное событие указать действие Stop.


Теперь мы должны иметь событие, которое выглядит следующим образом:
 
EvilAdminДата: Среда, 16.12.2015, 23:12 | Сообщение # 3
Учитель
Группа: Администраторы
Сообщений: 310
Репутация: 0
Статус: Offline
Добавляем в игровую зону фрукты


Механики игры будет заключаться в том, что с вершины игровой зоны будут падать фрукты, причём в разное время. Что бы не утруждать себя рисованием новых объектов, мы также как и в случае с бегуном, возьмём всё нужное из библиотек.
А всё нужное мы найдём по адресу: Games -> Miscellaneous -> General - Fruit. Перенесём отсюда следующие фрукты:


Зададим для фруктов свойство Movement, тип Pinball. В этом случае они будут вести себя более реалистично. При создании, они падают медленно, но потом падение постоянно ускоряется, т.к. на них действует гравитация.

Настроем такое движения для каждого из фруктов. Если вы в данный момент протестируете игру, то заметите, что фрукты падают с довольно высокой скоростью. Следовательно, нужно снизить им скорость падения, что бы можно было их словить. Для этого выделим все фрукты, и в свойстве Movement, где мы ранее указали тип движения, нужно теперь изменить параметры гравитации и начальной скорости равную 6.


Так же не забудьте задать первоначальное направление движения фруктов, right(0) и left(16).


 
EvilAdminДата: Четверг, 17.12.2015, 16:14 | Сообщение # 4
Учитель
Группа: Администраторы
Сообщений: 310
Репутация: 0
Статус: Offline
Создадим процесс падения для фруктов


Далее нам для нашей игры требуется запрограммировать процесс падения фруктов, с летающего объекта. Этот объект будет летать в верхней части игровой области и время от времени сбрасывать нам фрукты.
Что бы заново ничего не рисовать, откроем библиотеки и воспользуемся уже готовым спрайтом. Найдите космолёт по адресу библиотеки Games > Spacecraft > Space craft > Small UFO.


Перенесите иго из библиотеки на игровую область. Далее нам следует запрограммировать путь его движения, для этого в разделе свойств Movement, выберем тип Path Movement.


Для создание нужно нам траектории нажмём на кнопку Edit.

Появится диалоговое окно для создания и редактирования пути.


Что бы нарисовать путь, нажмите на вторую кнопку слева "Tape mouse". После чего нарисуйте кривую линию от начала игровой зоны, до конца и обратно. Причём постарайтесь нарисовать так, что бы точка старта и окончания были приблизительно в одном месте. Т.е. как-то так:


Далее, если вы сейчас протестируйте движение, то увидите что космолёт совершит всё движение по траектории и остановится. Нам нужно включить зацикленное движение, что бы по окончанию полного движения он его повторил снова. К тому же, скорость движения объекта слишком высокая.

Что бы изменить скорость, нужно мышкой выделить весь уже созданный путь, и переместить бегунок с описанием скорости от значения 50, до значения 18. Затем что бы зациклить движение, на панели редактирование траектории следует нажать на кнопку Loop the movement .
В результате у вас должны получиться такие настройки:


Теперь, если вы протестируете игру, то увидите, что всё работает как надо.

Перейдём к фруктам, для их создания нам потребуется функция определения времени. На практике это необходимо, для создания фруктов в определённый момент времени. Так к примеру:
- Каждую 3ю секунду, будет создаваться яблоко
- Каждую 5ю секунду, будет создаваться банан
- Каждую 7ю секунду, будет создаваться виноград

Заходим в редактор событий. Создадим новое состояние, нажмём на объект Timer и зададим ему свойство Every. В открывшемся диалоговом окне укажем значение секунд, равное 3.




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


Выберем из списка активных объектов - объект Apple.


Теперь от нас требуется указать координату появления объекта. Мы можем задать точное место появления на игровой области, а можем установить в качестве координаты - координату космолёта. Что собственно и сделаем, нажмите на флажок Relative to: и укажите объект Small UFO.


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


Когда вы произведёте все настройки, нажмите ОК.

Протестируйте игру, теперь наша НЛОшка, выбрасывает каждые 3 секунды по яблоку. Если что-то работает не правильно, проверьте правильность описания событий.


Как самостоятельная работа, добавьте ещё два фрукта, и пропишите им таймер на 5, и 7 секунд

 
EvilAdminДата: Четверг, 17.12.2015, 20:03 | Сообщение # 5
Учитель
Группа: Администраторы
Сообщений: 310
Репутация: 0
Статус: Offline
Собираем фрукты


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


Уже созданное событие выглядит так:

Если текущее условие истинна, то должно совершаться какое-либо действие. В нашем случае понятно, что объект яблоко должен исчезнуть и попутно начислить нам немного очков.

Это событие в основном просит MMF2 "У нас второе место только столкнулся с яблоком?"

Когда ответ на этот вопрос "да", это наша работа, чтобы сказать, что мы MMF2 то хотите, чтобы произошло. В нашем случае мы хотим, чтобы яблоко, чтобы уничтожить, и мы хотим, чтобы дать игроку некоторые моменты.

Для этого в созданном событии напротив объекта Apple создаём действие - Destroy (уничтожить).



Далее начислим очки за уничтоженное яблоко, нажмите правой кнопкой мыши в редакторе событий на объект Player 1 (напротив действия, где уничтожается яблоко). Затем Score > Add to Score.


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

Теперь по аналогии создайте условия столкновения для других фруктов. После того как вы закончите, у вас должна получиться такая запись:


Как видите, другие фрукты появляются с разными интервалами времени, и награда за них значительно выше, чем у яблока.

Если вы протестируете игру, то заметите, что всё работает...кроме отображения очков, тут нам потребуется вынести на игровую зону новый объект. Поэтому перейдём на редактор фрейма, выполним операцию Insert Object, из списка выберем объект Score.


Внешне этот объект выглядит как простое число с начальным значением "0".

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

Составим для всех фруктов условие определения положения в игровой зоне, приблизительно так же как мы это делали для нашего бегуна. А в качестве действия, для каждого фрукта укажите значение Movement > Bounce.


После этого все фрукты, которые коснутся границы экрана - будут отскакивать в противоположную сторону.

 
EvilAdminДата: Пятница, 18.12.2015, 15:04 | Сообщение # 6
Учитель
Группа: Администраторы
Сообщений: 310
Репутация: 0
Статус: Offline
Завершение игры

Наша игра почти завершена, всё что нам осталось сделать, это внести немного изменений.
- Измените цвет фона, чтобы не был белым.
- Из библиотеки добавьте графические объекты, такие как декоративные фоновые элементы (поверхность, облака и прочее).
- Также можете добавить звуки.

На этом всё! Спасибо за потраченное время. Я надеюсь вы получили все необходимые умения и навыки для создания простой игры. Если у вас есть какие либо вопросы, не стесняйтесь, задавайте в этой теме.


 
  • Страница 1 из 1
  • 1
Поиск: