В этой серии уроков мы будем использовать Corona SDK для создания увлекательной игры Space Shooter. Читай дальше!
Шаг 1: Обзор приложения
Используя готовую графику, мы создадим развлекательную игру с использованием Lua и API Corona SDK. Пользователь сможет управлять корабельным спрайтом и стрелять по врагам.
Шаг 2: Целевое устройство
Первое, что нам нужно сделать, это выбрать платформу, в которой мы хотим запустить наше приложение, таким образом, мы сможем выбрать размер для изображений, которые мы будем использовать. Платформа iOS имеет следующие характеристики:
- iPad: 1024×768 пикселей, 132 т / д
- iPhone / iPod Touch: 320×480 пикселей, 163 т / д
- iPhone 4: 960×640 пикселей, 326 точек на дюйм
Поскольку Android является открытой платформой, существует множество различных устройств и разрешений. Вот некоторые из наиболее распространенных характеристик экрана:
- Google Nexus One: 480×800 пикселей, 254 точек на дюйм
- Motorola Droid X: 854×480 пикселей, 228 пикселей на дюйм
- HTC Evo: 480×800 пикселей, 217 пикселей на дюйм
В этом руководстве мы сосредоточимся на платформе iOS с графическим дизайном, специально разработанной для распространения на iPhone / iPod touch, но представленный здесь код должен также применяться к разработке Android с Corona SDK.
Шаг 3: Интерфейс
Темный, красивый интерфейс будет отображаться. Это включает в себя несколько фигур, кнопок, растровых изображений и многое другое. В демонстрации этого урока используется отличная библиотека спрайтов, они являются частью SpriteLib от Flying Yogi .
Графические ресурсы интерфейса, необходимые для этого урока, можно найти в прилагаемой загрузке.
Шаг 4: Экспорт графики
В зависимости от выбранного устройства может потребоваться экспортировать графику в
рекомендуется ppi, вы можете сделать это в вашем любимом графическом редакторе.
Я использовал функцию « Настроить размер …» в приложении «Просмотр» в Mac OS X.
Не забудьте дать изображениям описательное имя и сохранить их в папке вашего проекта.
Шаг 5: Звук
Мы будем использовать звуковые эффекты для улучшения ощущения от игры. Вы можете найти звуки, использованные в этом примере на Soungle.com, используя ключевые слова пространство , взрыв и лазер .
Шаг 6: настройка приложения
Для запуска приложения в полноэкранном режиме на всех устройствах будет использоваться внешний файл, файл config.lua . Этот файл показывает исходный размер экрана и метод, используемый для масштабирования этого содержимого в случае, если приложение запускается с другим разрешением экрана.
|
1
2
3
4
5
6
7
8
9
|
application =
{
content =
{
width = 320,
height = 480,
scale = «letterbox»
},
}
|
Шаг 7: Main.lua
Давайте напишем заявку!
Откройте предпочитаемый редактор Lua (любой текстовый редактор будет работать, но у вас не будет подсветки синтаксиса) и подготовьтесь к написанию своего замечательного приложения. Не забудьте сохранить файл как main.lua в папке вашего проекта.
Шаг 8: Структура кода
Мы будем структурировать наш код, как если бы это был класс. Если вы знаете ActionScript или Java, вы должны найти структуру знакомой.
|
01
02
03
04
05
06
07
08
09
10
11
|
Necessary Classes
Variables and Constants
Declare Functions
constructor (Main function)
class methods (other functions)
call Main function
|
Шаг 9: Скрыть строку состояния
|
1
|
display.setStatusBar(display.HiddenStatusBar)
|
Этот код скрывает строку состояния. Строка состояния — это строка в верхней части экрана устройства, которая показывает время, сигнал и другие индикаторы.
Шаг 10: Библиотека MovieClip
|
1
|
local movieclip = require(‘movieclip’)
|
В этой игре будет использоваться анимированная графика, библиотека видеороликов Corona сделает это намного проще.
Шаг 11: Импортируйте физику
Мы также будем использовать библиотеку физики для обработки столкновений. Используйте этот код для его импорта:
|
1
2
3
|
local physics = require(‘physics’)
physics.start()
physics.setGravity(0, 0)
|
Шаг 12: Фон
В качестве фона для интерфейса приложения добавлено простое черное фоновое изображение, для отображения звезд добавлены белые точки.
|
1
2
3
4
|
— Graphics
— [Background]
local bg = display.newImage(‘bg.png’)
|
Шаг 13: Заголовок
Это заголовок, это будет первый интерактивный экран, который появится в нашей игре, эти переменные хранят его компоненты.
|
1
2
3
4
|
local title
local playBtn
local creditsBtn
local titleView
|
Шаг 14: Кредиты
Это представление покажет кредиты, год и авторские права на игру, эта переменная будет использоваться для ее хранения.
|
1
|
local creditsView
|
Шаг 15: Корабль
Спрайты корабля будут храниться этой переменной.
|
1
|
local ship
|
Шаг 16: Босс
Эта переменная хранит мувиклип босса.
|
1
|
local boss
|
Шаг 17: Оценка
Значение оценки будет обрабатываться следующей переменной.
|
1
|
local score
|
Шаг 18: Жизни
Мы будем использовать тот же спрайт, что и корабль, для жизни, они хранятся в следующей таблице.
|
1
|
local lives
|
Шаг 19: Проверка кода
Вот полный код, написанный в этом руководстве, вместе с комментариями, которые помогут вам идентифицировать каждую часть:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
— Space Shooter Game
— Developed by Carlos Yanez
— Hide Status Bar
display.setStatusBar(display.HiddenStatusBar)
— Import MovieClip Library
local movieclip = require(‘movieclip’)
— Import Physics
local physics = require(‘physics’)
physics.start()
physics.setGravity(0, 0)
— Graphics
— Background
local bg = display.newImage(‘bg.png’)
— [Title View]
local title
local playBtn
local creditsBtn
local titleView
— [Credits]
local creditsView
— [Ship]
local ship
— [Boss]
local boss
— [Score]
local score
— [Lives]
local lives
|
В следующий раз…
В этой части серии вы выполнили базовую настройку приложения. Следите за второй частью, где мы рассмотрим логику приложения, кнопки, поведение и многое другое. Увидимся в следующий раз!











