Chapter 4 — Creating Scenes / Глава 4 – Создание сцены

Chapter 4 — Creating Scenes / Глава 4 - Создание сцены

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

Игра Flow

Сцена представляет собой единый вид или страницу приложения и все, что игрок / пользователь видит содержится в этой сцене. Когда начинается ваше любимое приложение, иногда вы видите заставку, которая говорит вам имя приложения или компании, которая сделала это. Тогда, предполагая, что приложение или игра имеет меню, то, как правило, следующая сцена для показа. Каждый уровень в игре также может иметь свою собственную сцену, в зависимости от целей дизайна.

Эта игра будет иметь три основные сцены:

  1. Меню - Сцена, содержащая различные варианты.
  2. Игра - Реальная сцена игры.
  3. Лучшие результаты - список высоких баллов.

 

Управление Scene

Corona использует систему , называемую Composer для обработки перехода от одной сцены к другой . Для того, чтобы развитие проще, каждая сцена может представлять собой отдельный файл Lua - это помогает сохранить приложение или игру более организованной.

Заметка

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

Давайте изменим существующий проект для использования Composer:

  1. В вашей папке проекта, сделайте копию main.luaфайла и переименовать его main_original.lua. Нам понадобится этот исходный код в следующей главе.
  2. С помощью выбранного текстового редактора, откройте main.luaфайл ( а не копию). В этом файле, удалить все из предыдущего кода - помните, что у вас еще есть копия работать позже.
  3. Введите следующие команды:
local composer = require( "composer" )

-- Hide status bar
display.setStatusBar( display.HiddenStatusBar )

-- Seed the random number generator
math.randomseed( os.time() )

-- Go to the menu screen
composer.gotoScene( "menu" )

Давайте проверять эти команды в немного более подробно:

  • Первая линия, local composer = require( "composer" )создает локальную переменную с именем composer, а require()команда говорит Corona , чтобы загрузить всю информацию о библиотеке управления Composer сцены в приложение.
  • Следующая команда скрывает строку состояния в верхней части устройства. Хотя вы включили эту строку в коде из предыдущей главы, это хорошая идея , чтобы скрыть строку состояния в main.luaизComposer с поддержкой игры так , чтобы он никогда не появляется в любой сцене.
  • Далее, мы устанавливаем «семя» для псевдослучайного генератора чисел. Вы помните , что эта команда была включена в нашем оригинальном проекте. По существу, если вы используете Math.random () где - нибудь в приложении, это хорошая идея назвать math.randomseed () внутри main.luaтак , что семя сбрасывается каждый раз , когда запускается приложение.
  • Просто еще одна команда , и мы закончили main.lua. composer.gotoScene( "menu" )Команда имеет преимущество в первой строке , где мы загрузили Composer в приложение. Поступая таким образом, мы можем теперь использовать эту composer.gotoScene()команду , чтобы сказать Corona , чтобы загрузить другую сцену. Как уже упоминалось ранее, каждый из наших сцен будет содержаться в своих собственных файлах Lua: menu.lua,game.lua, и highscores.lua.
Заметка

Для этой команды, вам не нужно включать .luaв кавычки , потому что Корона уже ожидает , что файл имеет .luaрасширение. Таким образом, вы можете просто использовать , "menu"чтобы сказать Corona идти на сцену , содержащейся в menu.lua:

composer.gotoScene( "menu" )

Вот это для main.lua- не забудьте сохранить изменения! В отличие от предыдущего проекта, этот main.luaфайл является очень коротким , потому что мы только использовать его для инициализации Composer, скрыть строку состояния, и перейти к экрану меню , где начинается действие.

 

Глава Концепции

Мы ввели лишь пару больше понятий в этой главе, как связанные с Composer:

Команда / Недвижимость Описание
composer.newScene () Создает новый объект сцены, который можно использовать с библиотекой композитора.
composer.gotoScene () Переход к конкретному Composer сцены.

YoGo
Language