Главная » Программирование игр под Android » Androidlnput: отличный координатор – РАЗРАБОТКА ИГР ДЛЯ ОС ANDROID

0

Реализация интерфейса Input для нашей игры связывает вместе все обработчики, которые мы только что создали. Любые вызовы методов будут передаваться соответствующим обработчикам. Единственная часть реализации, которая требует особого внимания, – выбор того, как запрограммировать TouchHandl ег в зависимости от версии Android, установленной на устройстве.

В листинге 5.11 показано, как реализовать Androidlnput.

Листинг 5.11. Androidlnput.Java package com.badlogic.androidgames.framework.imp1;

Начинаем с того, что класс реализует интерфейс Input. Далее у нас есть три члена класса: AccelerometerHandler, KeyboardHandler и TouchHandler.

Три этих члена инициализируются в конструкторе, который принимает Context, View и значения scaleX и scaleY, которые мы пока снова игнорируем. Обработчик Accel erometerHandler устанавливается при помощи Context, a KeyboardHandler в свою очередь использует View для инициализации.

Чтобы понять, какой TouchHandl ег необходимо применить, мы просто проверяем, на какой версии Android работает приложение. Это можно сделать с помощью строки VERSION. SDK, константы Android API. Не совсем понятно, почему это именно строка, так как она просто содержит номер версии SDK, который мы используем в нашем файле описания. Поэтому нам необходимо преобразовать ее в целое число, чтобы потом было легче сравнивать. Самая актуальная версия, поддерживающая мультитач API, – 2.0, которая соответствует пятой версии SDK. Если устройство применяет Android версии ниже, запускаем Si ngl eTouchHandl ег, в противном случае используем Mul ti TouchHandlег. Вот и все проблемы с разделением на старые и новые версии, с которыми необходимо справиться на уровне API. Когда мы займемся отображением с использованием OpenGL, придется встретиться еще с несколькими случаями разделения. Но не стоит волноваться, справиться с ними будет так же легко, как и с проблемами API.

Оставшаяся часть данного класса понятна без объяснений. Каждый вызов метода передается соответствующему обработчику, который и выполняет саму работу. Таким образом, мы закончили работу с API обработки ввода во фреймворке нашей небольшой игры. Теперь самое время перейти к графике.

Источник: Mario Zechner / Марио Цехнер, «Программирование игр под Android», пер. Егор Сидорович, Евгений Зазноба, Издательство «Питер»

По теме:

  • Комментарии