27.07.2017 17:05
 3просмотров 9 0

J2me - клиент, которого не было. Часть 2.

Выбор платформы клиента.

На тот момент у меня было 2 устройства,для которых можно было что-то программировать. Это КПК с WINCE и телефон с поддержкой java в вариации j2me.
В теории, экран КПК больше подходил для показа боёв - 320*240 и 3" экран, но на практике отсутствие нормального интернет соединения(блютуза ещё не было) нивелировало все его достоинства. Дополнительно, написание программ для WINCE оказалось ещё тем удовольствием.
Телефон же - напротив давал и  интернет соединение без задержек напрямую, и удобство в управлении одной рукой ( на КПК без стилуса невозможно было что-то сделать - в итоге заняты были обе руки). И сама система ява оказалась намного удобней в программировании.

Итак, был выбран телефон сименс с экраном 132x176, под который и планировалось писать клиент боёв.



Проектирование интерфейса.


Далее пошло планирование имеющегося размера экрана под стандартное поле 10 на 12.
Даже не так - 12(+2 на героев с краю) по ширине было фиксированным, а по высоте от 10 и выше ужималось автоматически. Нехитрыми расчётами: 132/14= 10*12 карта + 2*6 герои сбоку (их немного ужмём, иначе все не влезают) получает ширину спрайта около 12-14 пикселей (по 1-2 пикселю разрешим спрайтам налазить друг на друга с каждой стороны).

Высоту же, необходимо было спланировать так, чтобы даже в каше 3х3 можно было что то разобрать. Тоесть, юниты не должны полностью перекрываться. 8*3=24 клетки в высоту, + 1 клетка вверху, чтобы не обрезалась верхушка верхних спрайтов, так как спрайты выравниваются по нижнему краю клетки и выступают (если) - то вверх.
Однако, кроме поля боя, необходимо отобразить и шкалу атб и окно сообщений.


Также был введён режим увеличения, при котором поле делилось на 2 вертикальные части, которые и показывались "во весь экран". Данный приём очень помог разбирать кто где стоит в боях с большим полем (гв,2*2,3*3).
Забиндил их кнопками " 3" - вся карта, "6" - увеличенная верхняя половина, "9" - увеличенная нижняя половина.



Возможность комментировать доступна после регистрации