Привет Гость!
Ты можешь:
Войти или зарегистрироваться
Меню сайта
Главная страница
Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [176]
Уроки по переводу java игр [15]
Программы для компьютера [106]
Программы для телефона [85]
Модификация смартфонных игр [15]
Symbian, Android, iPhone и т.д.
Прочее [36]
Уроки по модификации ПК игр [9]
Мини-чат
Главная » Статьи » Уроки по модификации java

18.08.2011, 20:47

Мобильное 3D и адаптация к запуску

Значится чтобы развеять еще один миф - "чего-то насыпать, размешать и будет суп", порассуждаем на тему мобильного 3D.

Зададим себе вопрос - что происходит, когда мы "добавляем в мидлет классы с других телефонов"? Что, неужели появляется поддержка mmf, mp3, подсветки, вибры? Ответ отрицательный. Возникают ли глюки с корректным отображением графики? Ответ положительный.

Так что же мы тогда делаем и почему это работает? Все очень просто: Виртуальная Ява Машина (далее ВМ) есть промежуточное звено между мидлетом и ОС самого телефона. Мидлет работает в своеобразной песочнице, где его изолируют от всех возможностей телефона предоставляя только гарантированный набор, который регламентирован в MIDP и CLDC. Учтем, что этот набор жестко описан и мидлет, написанный только по этим стандартам будет одинаково работать на разных платформах, правда UI (пользовательский интерфейс) может отличаться.

С целью облегчения жизни программистам, увеличения производительности (ведь всегда есть некие особенности реализации ВМ) производители выпустили расширения для стандартов. Например, доступ к файловой системе - по стандартам MIDP 1 и CLDC 1.0 это не возможно.

Итак, допустим, в игре мы используем звуки в mmf. Для этого мы загружаем специальный Нокиевский объект sound, который входит в Нокиевское расширение MIDP 1.0

Запустим такой мидлет на Сименс: при запросе инициализации sound, ВМ начнет искать класс, который отвечает за это и, естественно, не найдет его. ВМ сгенерирует исключительную ситуацию и выдаст сообщение об ошибке. Добавим этот класс в мидлет, теперь ВМ находит объект, инициализирует его, но, фактически, работает с пустышкой, потому что на уровне самой ВМ поддержка этого формата у нас не реализована. Т.е. нами была создана своеобразная "заглушка", с которой большинство мидлетов могут нормально функционировать.

Какие варианты возможны?

  • Расширения просто дополняют стандартные классы, вводя новую функциональность - тогда добавив их в мидлет мы полностью восстановим работу (например расширение для канвы, чтобы воспринимать коды от разных джойстиков)
  • Расширения дают доступ к специфическим возможностям телефона - объекты изолируются на уровне ВМ, т.к. в ней нет для них обработчиков (или ВМ "падает", так например если включить вызов вибры, то стандартный эмулятор из WTK2 падает)

Все это справедливо и для технологии 3D. Функциональность 3D движка описывается, естественно, не в файлах class - они не более чем "обертка", описание интерфейсов создания, инициализации и уничтожения (как например paint() у объекта canvas - это событие связано с экраном и ответственность за него лежит на ВМ). Добавив оберток, мы "конфетку" не получим Единственный путь - писать "враппер", который будет реализовывать функциональность движка средствами другого движка (помните OpenGL через DirectX?? вот тут полная аналогия).

Только для j2me такой враппер НИКОМУ не нужен! Представьте, к примеру, что в CLDC 1.0 нет даже чисел с плавающей запятой: реализация 3D движка силами j2me + другой 3D движок = страшный неповоротливый геморрой.

Автор статьи - iceman345
© Доступно только для пользователей

Категория: Уроки по модификации java | Добавил: Tommy_M | Автор: iceman345
Просмотров: 2872 | Комментарии: 1 | Рейтинг: 0.0/0

Всего комментариев: 1
Спам
sevas   (06.09.2011 08:12) [Материал]
Я непонял к чему это статья?Что мы тут делаем?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

о, привет
Новинки
  • Файлы
  • Статьи
  • Новости

Lego Bionicle Defenders
Комментов: 0 | Загрузок: 20
Колобок против Зомби: Войны Дартса
Комментов: 0 | Загрузок: 67
Copter mtk Classic (j2me Port)
Комментов: 0 | Загрузок: 88
Virus (Mod)
Комментов: 1 | Загрузок: 98
Angry Birds: Space Battles
Комментов: 0 | Загрузок: 122
Bounce Nokia 2005 (Java SE Port)
Комментов: 0 | Загрузок: 264
Turrican 2004 (Siemens Version) — Universal J2ME Port
Комментов: 0 | Загрузок: 219
Bounce Tales: Robo-Fiction
Комментов: 0 | Загрузок: 162
Nowhere ПЕРЕВОД
Комментов: 0 | Загрузок: 174
Resident Evil Genesis & Uprising & Uprising LE Перевод
Комментов: 0 | Загрузок: 306

Lego bionicle defenders
Комментов: 0 | Просмотров: 80
Devalley Text Editor
Комментов: 0 | Просмотров: 1195
Установка среды разработки для J2ME
Комментов: 2 | Просмотров: 4737
Abyss Engine Lang Editor
Комментов: 7 | Просмотров: 4526
KEmulator nnmod v2.16
Комментов: 0 | Просмотров: 4544
SISContents
Комментов: 1 | Просмотров: 6810
Особые буквы (À ö ß ç и т.д.) в PES 2010 (java)
Комментов: 0 | Просмотров: 6160

Трейлер ремейка SCP-087
Комментов: 0 | Просмотров: 4375
Открыт код Stalker Mobile 3D
Комментов: 1 | Просмотров: 4802
ГДЕ JAVA- ТУСОВКА? - ТУТ!
Комментов: 0 | Просмотров: 5105
Чат в Телеге
Комментов: 0 | Просмотров: 5192
ODN Remake - скриншоты
Комментов: 1 | Просмотров: 4784
O. D. N Remake
Комментов: 0 | Просмотров: 5097
Новый сайт с мобильными загрузками - Oldfag
Комментов: 6 | Просмотров: 6605
Случайный мод
Продолжение истории о пипяках в ином мире. Новая графика, новый уровень, новый текст.
3251 479 3 3.5
Статистика
Онлайн всего: 29
Гостей: 29
Пользователей: 0
Пользователи
Гости сайта

[ Нас сегодня посетили ]
При копировании материалов, желательно оставлять ссылку на этот сайт!
© Tommy_M 2009-2026 | Хостинг от uCoz