Программирование мобильных телефонов на Java


Программирование мобильных телефонов

  • Введение
  • Глава 1. Устройство мобильных телефонов
  • Глава 2. Платформа Java 2 Micro Edition
  • Глава 3. Средства разработки мобильных приложений
  • Глава 4. Телефонные эмуляторы
  • Глава 5. Механизм работы приложений Java 2 ME
  • Глава 6. Классы пользовательского интерфейса
  • Глава 7. Программирование графики
  • Глава 8. Техника создания игр
  • Глава 9. Мобильная мультимедиа-библиотека
  • Заключение
  • Приложение 1. Основы языка Java
  • Приложение 2. Справочник по Java 2 Micro Edition

     

    Программирование на Java

  • Введение
  • Глава 1. Встроенные типы данных, операции над ними
  • Глава 2. Объектно-ориентированное программирование в Java
  • Глава 3. Пакеты и интерфейсы
  • Глава 4. Классы-оболочки
  • Глава 5. Работа со строками
  • Глава 6. Классы-коллекции
  • Глава 7. Классы-утилиты
  • Глава 8. Принципы построения графического интерфейса
  • Глава 9. Графические примитивы
  • Глава 10. Основные компоненты
  • Глава 11. Размещение компонентов
  • Глава 12. Обработка событий
  • Глава 13. Создание меню
  • Глава 14. Апплеты
  • Глава 15. Изображения и звук
  • Глава 16. Обработка исключительных ситуаций
  • Глава 17. Подпроцессы
  • Глава 18. Потоки ввода/вывода
  • Глава 19. Сетевые средства Java
  • Приложение. Развитие Java

  • 

    3fb01dc2


     

     

    8.3. Класс TiledLayer



    С помощью класса TiledLayer создается фон игровой сцены. Фоновое изображение выполняется в виде одинаковых по размеру ячеек как показано на рис. 8.1.



    Рис 8.1. Ячейки фонового изображения


    Количество и расположение ячеек может варьироваться как угодно, но нумерация ячеек следует от единицы, слева направо и сверху вниз. Построение сцены происходит путем загрузки исходного изображения, разбитого на ячейки и указания индекса необходимой ячейки на игровом поле. Но прежде нужно создать объект класса TiledLayer с помощью конструктора, прототип которого выглядит следующим образом:

    TiledLayer(int columns, int rows, Image image,
    
     int tileWidth, int tileHeight)
    

    •  columns-количество столбцов;
    •  rows - количество строк;
    •  image - исходное изображение;
    •  tileWidth - размер ширины ячейки в пикселях;
    •  tileHeigh - размер высоты ячейки в пикселях.


    Размеры одной ячейки по ширине и высоте могут быть разными, но все ячейки исходного изображения должны быть одинаковыми по размеру. В качестве примера, возьмем за основу изображение на рис. 8.1 с шестью ячейками и предположим, что размер одной ячейки по ширине равен 10 пикселям, а по высоте 15 пикселям, тогда загрузка изображения и создание объекта TiledLayer может выглядеть следующим образом:

    Image im = Image.createlmage("/fon.png"); 
    
    TiledLayer tl =new  TiledLayer(3, 2, im, 10, 15);
    


    Загрузив изображение и создав объект класса TiledLayer, вы можете приступить к разметке фона па игровом ноле. Допустим, каждая из перечисленных по номеру ячеек обладает следующими характеристиками:

    1) камни;

    2) трава;

    3) вода;

    4) песок;

    5) воздух;

    6) заграждение.

    А игровое поле разбито на пятнадцать столбцов и десять строк, тогда создав массив данных, очень легко выполнить разметку всего поля, например таким образом:

    int[]   pole  =
    
    {
    
    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    
     1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    
    1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
    
    1, 1, 1, 1, 5, 5, 5, 1, 1, .5, 1, 1, 5, 5, 5,
    
    1, 1, 1, 1, 1, 5, 5, 1, 1, 1, 1, 1, 1, 5, 5, 1,
    
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 1, 
    
    1, 1,1, 1, 1, 4, 4, 4, 4, 6, 6, 6, 6, 6, 4, 4,
    
    4,4,4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,
    
    4, 4, 4, 3, 3/3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 
    
    4, 4, 4, 3, 3, 3, 3,,3, 3, 3, 3, 3,
    
     }


    Затем весь имеющийся массив данных считывается с помощью цикла и рисуется методом paint () на экране телефона.

    Познакомимся с методами класса TiledLayer:

    •  int createAnimatedTilefint staticTilelndex) - создает анимационный фон и возвращает следующий индекс ячейки;
    •  int getCellHeight () - получает высоту ячейки в пикселях;
    •  int getCellWidth() - получает ширину ячейки в пикселях;
    •  int getColumns () - получает количество колонок, на которое разбито изображение фона;
    •  int getRows () - получает количество строк, на которое разбито изображение фона;
    •  void paint (Graphics g) - рисует фон;
    •  void setCellfint col, int row, int tilelndex) - рисует заданную ячейку.

     
    -
    



    Copyright © vzlom-1.ru 2020-2021