Създаване на HTML5

PlayN и „Как Rovio Angry Birds написаха HTML5“

Viper Engine и PlayN

Преди няколко седмици реших да направя игра на PlayN и разбрах, че нивото на абстракция, което са избрали разработчиците, не им позволява бързо да създават игри. Платформата се нуждае от рамка, която ще решава общи задачи при писане на 2d игри. Задачи като: анимация, ефекти на частици, игрова камера, игрова сцена и промяна на сцената, проста физика, сглобяване на игрови обекти в групи. Седмица по-късно беше направена алфа версия на енджина Viper, с помощта на който ще създадем проста HTML5 игра в Java.

Инструменти за готвене

1. Инсталирайте PlayN

Първо, нека стартираме playn и неговите примери: Първи стъпки с PlayN Клонирайте библиотеката PlayN: Кодът на PlayN се съдържа в Git. Ако имате инсталиран Git:

Имате нужда от Maven версия 3 или по-нова, за да създадете PlayN. Можете да инсталирате Maven от следната връзка: инсталирайте Maven.

Проверете вашата версия на Maven: mvn -V Трябва да е 3 или по-нова.

След това инсталирайте playn в локалното хранилище на maven.

cd playn mvn чиста инсталация

За да стартирате един от примерите на PlayN:

cd playn/sample/showcase mvn чист пакет mvn тест -P test-html

Отворете браузър (разбира се Google Chrome) и въведете: 127.0.0.1:8080/ Страхотно, виждате демонстрацията, която инженерите на Google представиха на IO.

mvn test -P test-flash Сега флаш. Въведете: localhost:8080/

cd android mvn android:deploy И Android.

И не забравяйте да инсталирате добавки за Eclipse, за да продължите работата си в IDE. Инсталирайте Maven Integration за Eclipse изберете Помощ → Инсталиране на нов софтуер, изберете Всички налични сайтове и потърсете maven. ИнсталиранеGoogle Plugin за Eclipse. Инсталирайте платформата за уеб инструменти за Eclipse. Изберете Помощ → Инсталиране на нов софтуер. въведете download.jboss.org/jbosstools/updates/m2eclipse-wtp изберете Работа с и инсталирайте Maven Integration за WTP.

2. Създайте скелета на бъдещата игра в Eclipse

Отворете File → New → Other. след това изберете Maven → Maven Project, след което щракнете върху следващия.

Поставете отметка в квадратчето Включи архетипове на моментна снимка и щракнете двукратно върху playn-archetype в списъка с архетипове.

Настройте идентификатор на група, идентификатор на артефакт, версия, пакет и име на игра. Пример за идентификатор на група: com.mydomain.myproject. Пример за ИД на артефакт: gameamazing Пример за версия: 1.0-SNAPSHOT или 0.01a Пример за пакет: com.mydomain.myproject И пример за име на играта: LolGame

Щракнете върху Готово и вземете 5 проекта в Package Explorer. Страхотно, имаме скелета на играта. Като странична бележка, настройването на всичко това ще отнеме значително повече време от писането на самата игра.

3. Вземете Viper Engine с примери

cd Viper-Engine-Demos mvn clean install mvn test -P test-html

Сега нека импортираме проекта в Eclipse.

И можете да използвате.

Ние пишем игри

Игра на Viper Engine трябва да има входен клас, който наследява от VipGame.

В конструктора задаваме първоначалните стойности за играта. публичен ViperExamples() < // Задайте размера на игралното поле и света на играта. // Настройка на първата игрова сцена. // И кадровата честота. супер(640, 480, 800, 800, нов LogoDemo(), 33); >

Игралната сцена на Viper трябва да бъде наследена от VipState. И изисква задължително претоварване на метода create(); Описва всичко, което трябва да има в сцената. А за динамична обработка в циклите на играта трябва да претоварите методаактуализация();

Ето пример за просто създаване на няколко спрайта и модифицирането им с течение на времето: публичният клас MovingDemo разширява VipState

лично VipSprite img; частен VipSprite img2; частен VipKeyboardStandart kListener;

@Override public void create() img = new VipSprite(20, 20, "images/house.png"); добави(img); img.velocity.x = 0.2f;

img2 = нов VipSprite(270, 200, "images/house.png"); добавяне (img2); img2.angularVelocity = 0.002f;

kListener = нов VipKeyboardStandart(); addKeybordControl(kListener); >

@Override public void update() < super.update(); if (kListener.ESC) VipG.switchState(new LogoDemo()); > if (img.x > 350) img.velocity = нова VipPoint(0, 0.2f); if (img.y > 250) img.velocity = нова VipPoint(- 0.2f, 0); ако (img.x 2) img2.scale.x = 1.0f; > >

Hardcore conf в C++. Каним само професионалисти.