Уроки iPhone SDK: Вывод сообщения “Loading…” поверх клавиатуры iPhone Gold Rush - золотая лихорадка
Май 19

Программирование игр на iPhone. Часть 3 — экранная заставка.

На этот раз я познакомлю с парочкой моментов, которые придадут игре более завершенный вид. Для начала добавим к игре заставку с пятном. (Вновь прошу прощения за отсутствие художественных талантов. С Photoshop’ом так и не подружился.)

Создаем экранную заставку.

Добавим к игре заставку, которая постепенно будет сменяться основным экраном игры. Для начала загрузим изображение и добавим в относящуюся к проекту папку “Resources“. Убедитесь, что опция копирования изображения в папку проекта помечена флажком.

splash1

Теперь добавим к проекту контроллер “View Controller“, который будет работать с представлением “Splash View“. Создайте в проекте новый файл, являющийся подклассом “UIViewController“, и присвойте ему имя “SplashViewController“. (Флажок “Also create “SplashViewController.h” должен быть установлен.)

screenshot_01

Следующим шагом изменим “AppDelegate” так, чтобы он загружал новый контроллер представления вместо основного. Откройте файл “iTennisAppDelegate.h” и отредактируйте так, как показано ниже:

screenshot_021

Мы заменяем “iTennisViewController” контроллером “SplashViewController“. Теперь откройте файл “iTennisAppDelegate.m” и откорректируйте следующим образом:

screenshot_03

И снова мы подменяем “iTennisViewController” контроллером “SplashViewController“, чтобы изначально вместо основного экрана игры загружалась страница с заставкой. Основная разница в том, что здесь мы назначаем новый экземпляр контроллера “SplashViewController“. В случае с “iTennisViewController” необходимости в этом не было, поскольку он загружался из nib-файла, и его запускало собственно приложение. Следующим шагом реализуем представление “Splash View“. Откройте файл “SplashViewController.h” и добавим следующий код:

screenshot_04

Чуть подробнее о том, что, собственно, происходит. “NSTimer” будет некоторое время отображать страницу с заставкой, после чего она плавно сменится основным экраном игры. Метод “UIImageView” — не что иное как объект “imageview” для экранной заставки.
И, наконец, “iTennisViewController” — контроллер представления, который мы заменили внутри делегата нашего приложения. Загружать его будем из нашего представления с заставкой. Откройте файл “SplashViewController.m” и добавьте приведенный ниже код:

screenshot_041

Чуть подробнее о том, что, собственно, происходит. “NSTimer” будет некоторое время отображать страницу с заставкой, после чего она плавно сменится основным экраном игры. Метод “UIImageView” — не что иное как объект “imageview” для заставки.
И, наконец, “iTennisViewController” — контроллер представления, который мы заменили внутри делегата нашего приложения. Загружать его будем из нашего представления с заставкой. Откройте файл “SplashViewController.m” и добавьте приведенный ниже код:

screenshot_05

Его задача — простой синтез всех свойств. К методу “loadView” добавьте следующий код:

screenshot_071

В этом фрагменте много нового. Поскольку мы загружаем представление программными средствами, без nib-файла, нужно это представление создать. Получаем фрейм, в котором запущена программа, и, воспользовавшись им, размещаем новое представление. Теперь настраиваем представление контроллера “SplashViewController” на вновь созданное. Чтобы сообщить приложению о необходимости создания представления 320×480, придется создать фрейм.
Следующим шагом создаем “splashImageView” из изображения “Splash.png“. Нам потребуется фрейм и для этих изображений — нечто вроде пустого ящика, куда мы все поместим. Добавим “imageview” к нашему основному представлению, и оно тут же выведет его на экран.
Инициализируем основной контроллер нашего представления, отправив его nib-файлу, откуда он и будет загружаться. Альфа-прозрачность представления установлена на 0.0, т.е. оно полностью невидимо. Последним шагом добавляем его к нашему представлению. Сейчас оно поверх “splashimageview“, но его не видно, поскольку прозрачность установлена на 0.0.
Пора запускать таймер. В течение двух секунд он будет отображать заставку, после чего вызовет метод “fadeScreen“. Соответственно, данный метод нужно внедрить. Добавляем указанный ниже код:

screenshot_08

Сплошная анимация. Представление плавно исчезает в методе “fadeScreen“, после чего вызывается метод “finishedFading“. Тот, в свою очередь, возвращает отображение представления вместе с представлением контроллера “viewController“. Вывод на экран основного интерфейса не в его компетенции. Обязательно удалить заставку из superview, иначе переход получится крайне странным.
Заставка готова. Кнопкой “Build and Go” можете запускать симулятор и наблюдать за тем, как она сменяется основным игровым экраном.

Исходный код скачать можно [здесь]

Текст оригинальной статьи на английском языке [здесь]

Уважаемые читатели, данный материал был переведен и подготовлен к публикации проектом LookApp.ru, при публикации на другом сайте ссылка на LookApp.ru обязательна.

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...


3 Responses to “Уроки iPhone SDK: (Часть 3) Программирование игр на iPhone. “Пишем” игру iTennis. Экранная заставка.”

  1. 1. mvladlin Says:

    Ошибочный код после слов: “Откройте файл “SplashViewController.m” и добавьте приведенный ниже код:”
    представлен код из SplashViewController.h

  2. 2. Artem Says:

    Ок, найду оригинал и поправлю завтра. Спасибо.

  3. 3. iGeorG Says:

    ошибка только в том что продублирован код .h
    пропустите и увидете как обзац повторяется…и далее идет тот код который вам нужен

Оставьте комментарий