Как продвинуть сайт на первые места?
Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.

Ускорение продвижения
Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.



Иллюстрированный самоучитель по программированию мобильных телефонов

Класс GameCanvas. Класс Layer.

Абстрактный класс GameCanvas составляет основу интерфейса всей создаваемой игры. Этот класс отвечает за прорисовку экрана, улучшая механизм работы игрового цикла и не используя при этом входные системные потоки. Весь игровой процесс может быть сосредоточен в одном цикле метода run () интерфейса Runnable.

Игровой цикл, используемый классом GameCanvas, отличается от аналогичного цикла применяемого классом Canvas. Типичная проблема игрового цикла класса Canvas заключается в том, что он разбит на несколько потоков. Вывод графики происходит в одном методе, обработка событий с клавиш – в другом, а изменение состояния игрового процесса в третьем. Такая модель работы может давать сбои, поэтому в классе GameCanvas была придумана более изящная конструкция игрового цикла, располагающаяся в одном единственном цикле.

public void run()
{
Graphics g = getGraphics();
while(true)
{
// метод, обрабатывающий нажатия клавиш с телефона
inputKey();
// метод, прорисовывающий графику
GameGraphics();
// копирует графические элементы
на экран из внеэкранного буфера
flushGraphics();
}

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

Сама же обработка событий с клавиш упрощена с помощью метода getKeyState (). Вы просто определяете нажатую клавишу пописываете соответствующие игровые действия для нее. Изменены некоторые названия констант для клавиш телефона. Обработка событий с клавиш телефона происходит с помощью следующих констант:

  • static int DOWN_PRESSED – движение.вниз;
  • static int FIRE_PRESSED – реализует стрельбу из оружия;
  • static int GAME_A_PRESSED – игровая клавиша A;
  • static int GAME_B_PRESSED – игровая клавиша В;
  • static int GAME_C_PRES.SED – игровая клавиша С;
  • static int GAME_D_PRESSED – игровая клавиша D;
  • static int LEFT_PRESSED – движение влево;
  • static int RIGHT_PRESSED – движение вправо;.
  • static int UP_PRESSED – движение вверх.

Использование констант значительно упрощает работу с объектом, а с помощью метода getKeyStates () класса GameCanvas, можно определить, какая именно клавиша нажата в данный момент. Проанализируем методы класса GameCanvas:

  • void flushGraphics () – копирует изображение из внеэкранного буфера на экран;
  • void flushGraphics(int x, int y, int width, int height) – копирует изображение из внеэкранного буфера на экран в заданный по размеру прямоугольник;
  • protected Graphics getGraphics () – получает графические элементы для представления их в последствии классом GameCanvas;
  • int getKeyStates () – определяет какая из клавиш нажата;
  • void paint (Graphics g) – рисует графические элементы, представленные классом GameCanvas.

Класс GameCanvas создает основной цикл игрового процесса в одном потоке, наблюдает за событиями, получаемыми с клавиш телефона на основе которых производит постоянное обновление экрана.

Класс Layer

Абстрактный класс Layer задает основные свойства для всех созданных уровней игры.

Класс Layer имеет два подкласса TiledLayer и Sprite. При создании любых других подклассов класса Layer необходимо реализовать метод paint () в этих классах, чтобы иметь возможность рисовать созданные уровни на экране телефона, представляемом классом Graphics. С помощью методов класса Layer можно задавать размер и позицию уровня.

  • int getHeight() – получает высоту экрана;
  • int getwidth() – получает ширину экрана;
  • int getX () – получает горизонтальную координату уровня;
  • int getY () – получает вертикальную координату уровня;
  • void move (int dx, int dy) – перемещает уровень на dx и dy координаты;
  • abstract void paint (Graphics g) – рисует уровень;
  • void setPosition (int x, int у) – устанавливает уровень в позицию, обозначенную в координатах х и у.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.