Статьи, которые добавил aNNiMON:

Таймер в Java ME

Java  java me

Иногда при создании мобильных приложений приходится выполнять какие-либо действия через заданный промежуток времени. Например, в какой-нибудь игре нужно выпускать на поле новых монстров каждые 5 секунд. В таком случае удобно использовать таймер, который находится в пакете java.util. Использование таймера крайне простое.

Первым делом необходимо создать экземпляр класса Timer:
  1. Timer timer = new Timer();
Далее создаем объект TimerTask и переопределяем его метод run(). Например так:
  1. TimerTask tTask = new TimerTask() {
  2.     public void run() {
  3.         display.vibrate(100); // вибрировать 100 миллисекунд
  4.     }
  5. };
Кстати, метод vibrate() объекта типа Display заставляет телефон вибрировать. В параметр нужно написать длительность
Продолжить

Рейтинг:  2  (За: 2 | Против: 0)
Добавлено: 9.05.2014 от aNNiMON

Комментарии (0)

Побитовые операции

Java

В языке Java (да и в других языках тоже) есть такие побитовые операции:
И (AND) &
ИЛИ (OR) |
ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) ^
СДВИГ ВЛЕВО (SHL) <<
СДВИГ ВПРАВО (SHR) >>
ИНВЕРСИЯ ~

И (конъюнкция)
  1. a b  &
  2. 0 0  0
  3. 0 1  0
  4. 1 0  0
  5. 1 1  1
Правило: если хотя бы в одном из битов будет ноль, то результат тоже будет нулём.

Возьмём числа 34 и 27. В двоичной системе счисления им будут соответствовать числа 00100010 и 00011011.
Выполним операцию И для этих двух чисел:
00100010 - 34
00011011 - 27
00000010 - 2
То есть 34 & 27 = 2

ИЛИ (дизъюнкция)
  1. a b  |
  2. 0 0  0
  3. 0 1  1
  4. 1 0  1
  5. 1 1  1
Правило: если хотя бы в одном из битов будет единица, то результат тоже будет единицей.

Выполним операцию ИЛИ для всё тех же чисел 34 и 27.
00100010
Продолжить

Рейтинг:  6  (За: 6 | Против: 0)
Добавлено: 9.05.2014 от aNNiMON

Комментарии (18)

Дизайн API библиотеки

Совершенный код  api, library

На написание данной статьи меня натолкнула библиотека EasyCamera, которая упрощает сложный вызов Android Camera API (статья о ней).
Часто приходится сталкиваться с тем, что для работы той или иной библиотеки необходимо прочитать документацию или поискать подробные примеры её использования. Например, чтобы заставить ту же Android Camera API показать экран видоискателя, нужно вызвать сначала метод setPreviewDisplay(holder), а затем уже startPreview(). Это не всегда очевидно и не очень удобно.
Поэтому при проектировании библиотеки следует учитывать некоторые параметры, а именно:
1. Классы и методы должны быть понятны пользователю (в данном случае пользователем
Продолжить

Рейтинг:  4  (За: 5 | Против: 1)
Добавлено: 6.04.2014 от aNNiMON

Комментарии (16)

Быстрое создание 2D ландшафта

GameDev  java

При написании некоторых игр возникает необходимость создать холмистый ландшафт. Есть множество различных алгоритмов таких как, например, разбиение пополам: берётся прямая линия на всю ширину игровой области, затем берётся середина этой линии и поднимается или опускается на некоторую величину. Затем полученные две линии снова делятся пополам и изменяются на некоторую величину в центральной точке и так до тех пор, пока размер разделённой пополам линии не достигнет какого-то предела, обычно в один пиксель.

Но есть и более простой и быстрый способ генерирования 2D ландшафта.
Создаём массив размером с ширину игровой области.
int[] blockHeights = new int[width];
Определяем максимальную высоту, чтобы земля не вышла за пределы экрана.
int maxHeight = height / 2;
Рассчитываем
Продолжить

Рейтинг:  11  (За: 11 | Против: 0)
Добавлено: 15.03.2014 от aNNiMON

Комментарии (11)

ООП в примерах. Часть 4. Интерфейсы, повторное использование

Совершенный код  ооп, java me, java

Продолжим наше изучение ООП. Давайте создадим сущность Меню и обернём её вокруг наших пунктов, то есть перенесём всё, что касается меню в отдельный класс Menu.
Позиция курсора (int cursor), массив с пунктами меню (MenuItem[] items), отрисовка, обработка клавиш теперь будет в классе Menu. Menu.java
Вместо массива я добавил Vector, чтобы можно было динамически добавлять элементы.

Теперь класс Canvas будет ещё проще:
  1. public class OopMenu5 extends Canvas {
  2.  
  3.     private final int width, height;
  4.     private Menu menu;
  5.  
  6.     public OopMenu5() {
  7.         setFullScreenMode(true);
  8.         width = getWidth();
  9.         height = getHeight();
  10.  
  11.         menu = new Menu();
  12.         menu.addMenuItem("Start", "start.png");

Продолжить

Рейтинг:  6  (За: 7 | Против: 1)
Добавлено: 7.02.2014 от aNNiMON

Комментарии (24)
Всего: 106
<< 1 ... 17 18 19 20 21 22 >>
Категории

Мы в соцсетях

tw tg yt gt