Вітаю всіх моїх читачів! Починаю викладати вільний переклад уроків по розробці додатків на AndEngine. Сам в даний момент перейшов з libGDX на AndEngine, тому, мої статті та переклади забезпечені.
Введення в AndEngine:
AndEngine є ігровим OpenGL 2D движком з відкритим вихідним кодом, розробленим Ніколос Гремліхом. Навіть якщо ви не маєте досвіду програмування під OpenGL, це не завадить вам створювати 2D програми під Android з використанням OpenGL. Найголовніше - мати досвід програмування на Java. Без цього нікуди.
- • масштабування додатки в різних пристроях (різних дозволах)
- • Підтримка мультитач.
- • Фізичний движок Box2D (у вигляді розширення) (яка використовується, наприклад AngryBirds)
- • Підтримка Tiled Maps
- • Системи частинок
- • Живі шпалери (у вигляді розширення)
2. Переваги використання AndEngine:
- • Вільний і відкритий вихідний код.
- • Вам дійсно не потрібен досвід OpenGL програмування, (але буває бажано)
- • Швидкий, добре пророблений движок
- • Відносно великі, активні і корисні спільноти.
- • Багато розширень під движок
- • Безліч прикладів c демонстрацією можливостей движка
3. Основні недоліки:
- • Майже немає нормальної документації (особливо російською).
- • Іноді працює повільніше, ніж інші движки
- • Відсутність документації є основною складністю на початкових етапах, (важко зрозуміти параметри, функції, методи і т.д.)
Але замість документації, движок має активну англомовне співтовариство і великі країни, що розвиваються проекти, в яких більш досвідчені користувачі можуть допомогти початківцям розробникам, а це в свою чергу допоможе вам легше, швидше і краще розробляти свою гру.
Читайте також:
Перед установкою вам необхідний вже встановлена зв'язка Eclipse + JDK + Android SDK (в Рунеті повно уроків про те, як це зробити, тому проблем з цим виникнути не повинно).
Читайте також:
У цьому уроці я постараюся дати короткий опис найбільш часто використовуваних термінів і визначень ігрового движка AndEngine.
Опис і терміни складені самим Ніколос Гремліхом
Engine (движок) становить ігровий процес з маленьких кроків. Так Engine, синхронізує отрисовку об'єктів на сцені і оновлення екрану, обробку подій, обробку різних даних, які містить активна в даний момент часу ваша Activity. Є різні підкласи, наприклад:
- LimitedFPSEngine - цей клас намагається досягти певного значення оновлень і відтворення в секунду.
IResolutionPolicy є частиною EngineOptions. Цей клас вказує AndEngine як боротися з різними розмірами екранів різних пристроїв. Тобто метод RatioResolutionPolicy буде максимально збільшувати SurfaceView до граничного розміру, зберігаючи при цьому певне співвідношення. Це означає, що об'єкти не будуть спотворені в той час як SurfaceView матиме максимально можливий розмір.
- RatioResolutionPolicy - масштабувати все в правильному співвідношенні (недолік - можуть утворитися чорні лінії)
- FillResolutionPolicy - розтягувати зображення по розміру екрану (недолік - зображення можуть бути розтягнуті)
Camera визначає прямокутник сцени, яка малюється на екрані. Зазвичай, в одній сцені використовується одна Camera. Є підкласи з великою кількістю функцій, наприклад:
- BoundCamera - камера, із зазначенням розмірів отрісовиваємих частини.
- ZoomCamera - можна дозволити масштабування, прокрутку камери.
Клас Scene - кореневої контейнер для всіх об'єктів, які можна отрисовать на екрані. Сцена має певну кількість шарів, які самі по собі можуть містити (фіксований або динамічне) кількість елементів. Є підкласи, такі як CameraScene / HUD / MenuScene, які займають одне і те ж положення незалежно від позиціонування камери.Напрімер:
- HUD - використовується для окулярів, карти, радара і т.д. (Цей підклас слід за змінами камери, тому знаходиться весь час в одному місці, незалежно від переміщення камери)
Entity:
Entitiy це об'єкти, такі як спрайт, прямокутники, текст або ліній. У об'єктів є властивості, такі як: стан / орієнтація / шкала / колір / і т.д.
- Sprite - об'єкти з текстурою
- TiledSprite - об'єкти з Tiled текстурами.
- AnimatedSprite - розширення TiledSprite, анімовані спрайт.
Текстура це «зображення» в пам'яті графічного чіпа. На Android`e ширина і висота текстури повинні бути ступенем 2 (в останньому GLES2 це правило не потрібно, що може бути дійсно корисним для економії пам'яті). AndEngine збирає текстури від декількох ITextureSources, тому простір може використовуватися ефективніше.
TextureRegion:
TextureRegion визначає прямокутник на текстурі. TextureRegion використовують спрайт, щоб дати системі знати, яка частина великої текстури Sprite показує.