Сайт створено у системі uCozЯндекс.Метрика
Меню сайта
Все для ucoz Counter-Strike 1.6 Все для photoshop Допомога по Counter-Strike Програмування Майстерня
Головна » Статті » навчання в ОС » Программирование

Создаем игру в Scirra Construct (Часть 4)

Теперь удерживая Control, скопируйте под-событие еще раз. Затем на условии Is moving (Движется) нажмите ПКМ и в открывшемся списке выберите команду Invert condition (Инвертировать условие). Смотрите рис. 60.



Напротив инвертированного условия нам нужно немного подкорректировать действие. В строке Set animation to (Установить анимацию) кликаем ЛКМ по надписи 'moving' и вместо нее вписываем другую анимацию с названием 'standing', нажимаем Enter. Смотрите рис. 61.



Итак, мы создали событие, в котором есть еще два параллельных под-события. В первом мы задали условие, что когда персонаж движется, то воспроизводится анимация бега. Во втором под-событии мы инвертировали условие и получилось, что когда главный герой стоит на месте (не движется) — воспроизводится анимация стойки.

Запустите игру и, нажимая на клавиатуре стрелки влево и вправо, побегайте персонажем. При движении будет воспроизводиться анимация бега (смотрите рис. 62), а при отсутствии движения персонаж будет становится в стойку.



Управляя героем, вы наверняка заметили, что анимация бега воспроизводится чересчур быстро. Дело в том, что по умолчанию скорость воспроизведения каждой анимации составляет50 кадров в секунду. А анимация бега, которую мы загрузили была нарисована для 24-х кадров.

Чтобы изменить скорость воспроизведения анимации перейдите в Layout Editor (Редактор Уровня), выберите персонажа и справа на панели управления анимацией, под строкой moving, кликните ЛКМ мыши на закрученную стрелку с надписью Angle: 0* (Right), чтобы выделить анимацию. Смотрите рис. 63.



Дальше слева на панели свойств напротив Animation speed (Скорость анимации) установите значение 24. Смотрите рис. 64.



Запустите игру и проверьте анимацию. Сейчас скорость воспроизведения анимации соответствует скорости движения персонажа. Нам осталось включить еще 2 анимации — прыжок и падение.

Для включение прыжка перейдите в редактор событий и в группе Character создайте новое событие. В списке объектов выберите basis, далее вкладка Platform и выберите там условие is jumping (Прыгает). В действии назначьте анимацию jumping.

Потом скопируйте созданное вами событие и, щелкнув 2 раза ЛКМ по условию is jumping (Прыгает), поменяйте его на команду is falling (Падает), а в действии замените название анимации 'jumping' на 'falling'. В итоге у вас должно получится как на рис. 65.



Запустите игру и нажмите клавишу Shift на клавиатуре. Если вы все сделали правильно, то во время прыжка вы увидите, как включится анимация jumping, а при падении она сменится анимацией falling. При падении видно, что персонаж начнет дергаться — чтобы исправить эту ошибку перейдите в редактор уровня и измените скорость воспроизведения анимацииfalling на 24 кадра в секунду. Также в свойствах анимации следует снять галочку с опцииLoop (Зацикленный). Эта опция нужна, чтобы анимация воспроизводилась по кругу, но в нашем случае при падении анимация должна проигрываться только один раз. Смотрите рис. 66.



Снова запустите игру и попробуйте попрыгать. При падении анимация должна отображаться корректно (без каких-либо дерганий). Смотрите рис. 67.


Итак, у нас есть действующий персонаж со всеми включенными анимациями. Теперь давайте добавим в игру монеты и сделаем интерфейс с подсчетом очков и жизней. Скачайте архив с изображениями монеты — money.zip, затем перейдите в Layout Editor (Редактор уровня) и на слое с названием scenery создайте новый спрайт. Загрузите в него все 15 кадрованимации монеты из скачанного архива и переименуйте спрайт в money. Затем в свойствах анимации установите скорость воспроизведения 24 кадра. Переместите монету вправо, над второй платформой, и раскопируйте ее в виде пирамиды как на рис. 68 (масштаб изображения уменьшен на 50%).


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

Для нашей задачи мы будем использовать глобальную переменную. Чтобы ее создать, кликните на вкладке Project (Проект), которая расположена в правом нижнем углу программы. Смотрите рис. 69.



Далее в списке ресурсов найдите папку Global variables (Глобальные переменные), кликните на ней ПКМ и нажмите на Add global variable (Добавить глобальную переменную). Смотрите рис. 70.



На экране появится новое окно с названием Add global variable (Добавить глобальную переменную). В поле Name (Имя) впишите score и нажмите ОК. Смотрите рис. 71.



Под папкой Global variables (Глобальные переменные) появится строка с названием вашей глобальной переменной. Смотрите рис. 72. При взятии монет ее значение будет увеличиваться и сохраняться на протяжении всей игры.



Перейдите в редактор событий и в группе Character создайте новое событие. В открывшемся окне выберите спрайт basis, затем в списке условий кликните на On collision with another object (При столкновении с другим объектом), далее нажмите на кнопку Pick object (Указать объект) и выберите спрайт money.

Не создавая действия на это событие, добавьте под-событие, выберите объект System (Система) и в списке команд нажмите For Each Object (ordered) (Для каждого объекта (упорядоченно)), затем кликните на кнопке Pick object (Указать объект) и выберите спрайтmoney. В созданном вами под-событии добавим действие — выбираем спрайт money, и выбираем действие Destroy (Уничтожить). Далее в этом же под-событии создаем еще одно действие — выберите объект System (Система) и в списке найдите команду Add to value (Добавить к значению), откроется окно, где в поле Variable (Переменная) нужно выбрать имя глобальной переменной score, а в поле Value (Значение) указать количество прибавляемых очков (например, 100). Смотрите рис. 73.



Если вы сделали все правильно, то должно получится точно такое же событие, как на рис. 74.



Мы создали событие, что когда персонаж касается монет, то они удаляются и за каждую из них прибавляется 100 очков.

Теперь давайте сделаем интерфейс, на котором будут отображаться жизни персонажа и количество заработанных им очков. Перейдите в Layout Editor (Редактор уровня) и на панели Layers (Слои) выделите слой с названием scenery, нажав на зеленую стрелку с направлением вверх, создайте новый слой. Далее в свойствах впишите имя слоя interface, а ниже во вкладке Display (Отображение) напротив опций Scroll X Rate (Скорость прокрутки по X) и Scroll Y Rate (Скорость прокрутки по Y) вместо 100% впишите значение 0.
Значение 0 нужно для того, чтобы слой, на котором расположен интерфейс, не прокручивался за уровнем и всегда стоял на месте.

Очень важно, чтобы слой интерфейса всегда находился в самом верху в списке слоев, так как объекты находящиеся на нем (жизни, количество очков и т.д.) должны идти поверх других объектов в игре. Смотрите рис. 75.



Далее загрузите изображение lives.png, и на созданном вами слое добавьте новый спрайт. Переименуйте его в lives и поместите в левый верхний угол. Смотрите рис. 76.



Теперь, находясь на этом же слое, кликните ПКМ на уровне и выберите Insert an object (Вставить объект), а в списке объектов найдите объект Text (Текст). Поставьте его рядом со спрайтом lives, затем зайдите в свойства и переименуйте объект в text_lives. Задайте точные координаты расположения объекта, указав напротив строки X значение 85, напротив Yзначение 56. Теперь измените размер контейнера для текста указав напротив Width (Ширина) и Height (Высота) значение 30. Смотрите рис. 77.



Cпуститесь ниже и найдите вкладку Properties (Свойства), и здесь напротив Size (Размер)установите размер шрифта 34 пикселя. Затем отметьте галочки напротив Bold (Жирный) иItalics (Курсив), чтобы сделать шрифт жирным и наклонным. Далее установите позицию текста внутри самого контейнера выбрав Left (Слева) в опции Horizontal alignment (Горизонтальное выравнивание) и Top (Верх) в Vertical alignment (Вертикальное выравнивание). Осталось задать цвет текста: напротив опции Color (Цвет) щелкните на цветной прямоугольник и вам предложат выбрать цвет — в самых верхних строчка впишите параметры 255; 190; 0. Смотрите рис. 78.



Чтобы при запуске игры объект text_lives показывал нам количество жизней персонажа, нужно создать приватную переменную. Выделите спрайт главного героя и в свойствах найдите вкладку Private Variables (Приватные Переменные). Смотрите рис. 79.



Нажмите Add/Edit (Добавить/Редактировать), откроется окно Manage Private Variable (Управление приватными перемеными). Смотрите рис. 80.



В нижней части окна кликните на зеленый плюс. Откроется новое окно Add Private Variable (Добавить приватную переменную), в поле Name (Имя) впишите название lives, а в Initial value (Первоначальное значение) укажите количество жизней по умолчанию, вписав значение 3. Смотрите рис. 81.



Далее нажимаем кнопку OK, а затем Done. Приватная переменная появится в свойствах персонажа. Теперь переходим в редактор событий и в группе Character ищем событие, в котором есть условие Always (Всегда) (это было самое первое событие, которое мы создали). В нем уже есть действие, поэтому под ним кликаем ЛКМ на New action (Новое действие) и создаем еще одно действие. В списке объектов выбираем text_lives, затем действие Set text (Установить текст). В окне появится строка для ввода текста, а ниже список объектов, среди которых нам нужно выбрать спрайт Character. Щелкните по спрайту 2 раза ЛКМ, на экране появится окно New expression (Новое выражение), где вам нужно найти команду Get private variable (Получить приватную переменную). Смотрите рис. 82.




Нажав Finish вы увидите, что в поле для ввода текста появилась строчкаcharacter.Value('Variable name'). Вместо Variable name (Имя значения) вам нужно вписать имя приватного значения жизней персонажа (то есть lives). Смотрите рис. 83.



В итоге, если вы все сделали правильно, должно получиться событие как на рис. 84.



Теперь запустите игру и проверьте — вместо буквы Т будет отображаться количество жизней персонажа. Смотрите рис. 85.



На этот же слой добавьте еще один объект Text и переименуйте его в text_score, ниже задайте координаты — для X значение 600, для Y значение 56. Размер контейнера Width (Ширина) — 200, Height (Высота) — 30. Спускаемся ниже во вкладку Properties (Свойства)и настраиваем объект следующим образом: размер шрифта ставим такой же, как и у первого объекта, 34 пикселя. Также отмечаем галочки напротив Bold (Жирный) и Italics (Курсив). Ставим точно такую же позицию внутри самого контейнера выбрав Left (Слева) в опцииHorizontal alignment (Горизонтальное выравнивание) и Top (Верх) в Vertical alignment (Вертикальное выравнивание). Задаем тот же цвет, установив параметр цвета на 255; 190; 0. Смотрите рис. 86.



Возвращаемся в редактор событий и под действием для объекта text_lives создаем еще одно действие. Выбираем объект text_score, далее команду Set text (Установить текст), внизу из списка объектов выбираем объект System (Система), ищем команду Get global variable (Получить глобальную переменную) и жмем Finish (Завершить). Теперь внимание! В поле для ввода текста вы увидите строку global('Variable name'), если вы сейчас вместо Variable name (Имя переменной) просто впишите имя глобального значения score и нажмете Finish (Завершить), то в игре будут отображаться лишь цифры! Но нам нужно, чтобы перед количеством очков была надпись, обозначающая, что это за цифры. Для этого перед строкойglobal('Variable name'), в кавычках нужно написать текст, который вы хотите увидеть перед количеством набранных вами очков (например ''Score: '' или ''Очков: ''), затем поставить амперсанд &, после которого уже идет строка global('score'). Смотрите рис. 87.

Произвольный текст может идти в любом месте, например, чтобы поставить его после количества очков, достаточно перенести текст в конец строчки, после глобальной переменной, и связать их знаком амперсанда. Получится строчка global('score') & ''очков''.



Если вы все сделали правильно, должно получиться событие, как на рис. 88.



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





Категорія: Программирование | Додав: admin (22.04.2011)
Переглядів: 1488 | Рейтинг: 0.0/0
Всього коментарів: 0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]
Наша копилка

Block title
Онлайн всего: 1
Гостей: 1
Пользователей: 0
сервера cs 1.6

Rip by vkontakte1412.ucoz.ru | (c) Все права защищены! | 2010-2011 |
Полное или частичное использование материалов vkontakte1412.ucoz.ru только с разрешения администрации
.
Сайт оптимизирован под браузер Opera. Sitemap | Sitemap-forum | СП
Дизайн данного сайта полностью принадлежит администратору сайта.

Вся информация предоставленная на сайте vkontakte1412.ucoz.ru является собственностью авторов. Любую информацию размещенную на сайте запрещено копировать без размещения ссылки на источник.
Дизайн данного сайта принадлежит полностью администратору сайта. Категорически запрещается копировать и использовать без соглашения главного администратора. За использование дизайна без согласия главного администратора, полагается разбирательство с администрацией хостера (в данном случае системы uCoz) и блокировка аккаунта нарушителя.
Yandex | Google | Rambler | Yahoo | Mail