21.08.2010 / 18:30 | |
LPzhelud Пользователь Сейчас: Offline
Имя: Коля Откуда: Москва Регистрация: 02.06.2010
| aNNiMON, однако мы предпологаем, что числа настолько большие не будут использоваться)
__________________
Эль Презеденте |
24.08.2010 / 20:38 | |
dejqitz Пользователь Сейчас: Offline
Имя: Александр Откуда: Ростов на Дону Регистрация: 01.08.2010
| Описание классов, методов и интерфейсов J2ME в понятной форме.
* Если есть опечатки, неточности, а также если вы хотите расширить данное пособие, то пишите мне в личку.
Прикрепленные файлы: api.zip (179.03 кб.) Скачано 375 раз |
26.08.2010 / 14:20 | |
P@bloid Пользователь Сейчас: Offline
Имя: Павел Откуда: Волгоград Регистрация: 25.02.2010
| Очень часто в различных приложениях возникают проблемы с кодировкой. Чаще всего причина этого - использование InputStream/OutputStream. Чтобы избежать этих проблем, можно использовать классы InputStreamReader/OutputStreamWriter. Используются они следующим образом: InputStream input=connection.openInputStream();/*допустим это наш InputStream,
если считывать данные через него, то возникнут "кракозябры"
исправляется так:
*/
InputStreamReader reader=new InputStreamReader(input,"UTF-8");//вместо UTF-8 можно подставить другую кодировку, поддерживаемую телефоном
C OutputStreamWriter поступать по аналогии Изменено P@bloid (26.08 / 14:22) (всего 2 раза) |
22.09.2010 / 23:10 | |
Zvers Пользователь Сейчас: Offline
Регистрация: 06.02.2010
| При создании игр необходимо учитывать некоторые правила : 1. Само собой двойная буфферизация. 2. Нежелательно каждую прокрутку цикла объявлять объекты, т.к. игра может тормозить. 3. Экономить память. Обнулять объекты и массивы.
Изменено aNNiMON (25.09 / 08:31) (всего 1 раз) |
10.10.2010 / 12:08 | |
manifest_mf Пользователь Сейчас: Offline
Имя: Максим Регистрация: 13.02.2010
| При создании игр нам чаще всего необходимо реализовывать управление персонажем или каким-либо другим спрайтом. А при использовании средств GameAPI могут возникнуть проблемы с обработкой клавишных событий при помощи метода getKeyStates(). Всё дело в том, что getKeyStates() не всегда возвращает код нажатой клавиши, а возвращает 0. В таком случае можно использовать один способ с использованием методов нажатия клавиш и отпускания. Это keyPressed() и keyReleased(). Создаем глобальную булевую переменную для того, чтобы проверить, нажата клавиша или отпущена и создаем глобальную переменную для getGameAction(int). public boolean isPressed;
public int gameAction;
Далее, в методе keyPressed() прописываем, что наша булевая переменная равна true, а в keyReleased() она будет становится false. И, также, инициализируем метод getGameAction(int) в каждом из этих методов. public void keyPressed(int keyCode) {
isPressed = true;
gameAction = getGameAction(keyCode);
}
public void keyReleased(int keyCode) {
isPressed = false;
gameAction = getGameAction(keyCode);
}
public void input() { // и создаем свой отдельный метод для обработки клавишных событий
if ((isPressed) & (gameAction == UP)) {
// а здесь пишем действие,
// которое будет выполняться
// при удержании
// кнопки "вверх" на джойстике
}
}
Теперь остается метод input() объявить или в главном цикле программы, или в главном классе, в методе startApp(), или в другом нужном вам месте. (C) manifest_mf |
21.10.2010 / 13:16 | |
Kiq Пользователь
| Чтобы получить офигенную графику в 3d, используйте setFiltering(Texture2D.FILTER_LINEAR,Texture2D.FILTER_LINEAR);
|
3.01.2011 / 20:33 | |
aNNiMON Супервизор Сейчас: Online
Имя: Витёк Регистрация: 11.01.2010
| Написал класс, для универсальной работы с акселерометром. Как известно, в акселерометрах есть три типа получения данных (int, double и Object). Целые в телефонах Sony Ericsson, вещественные на эмуляторе SE и телефонах Nokia, а последние на практике нигде не встречаются. Также, некоторые акселерометры не поддерживают трёхмерной обработки координат, всё это тоже учтено. В представляемом классе, не зависимо от типа данных, возвращаемые значения будут от -1024 до 1024 (при желании можно легко поменять на свой диапазон в методе getValue(Object o)). Исходник закоментирован - проблем не должно возникнуть __________________
let live Изменено aNNiMON (3.01 / 20:34) (всего 1 раз)
Прикрепленные файлы: AccelUtil.java (4.23 кб.) Скачано 1587 раз |
25.01.2011 / 17:36 | |
aNNiMON Супервизор Сейчас: Online
Имя: Витёк Регистрация: 11.01.2010
| Метода подсчета FPS (by dzanis) static long FPS, FPS_Count, FPS_Start;
static String getFPS() {
FPS_Count ++;
if (FPS_Start == 0)
FPS_Start = System.currentTimeMillis();
if (System.currentTimeMillis() - FPS_Start >= 1000) {
FPS = FPS_Count;
FPS_Count = 0;
FPS_Start = System.currentTimeMillis();
}
return Long.toString(FPS);
}
перед методом repaint();просто пишем g.setColor(0xFF0000);
g.drawString(getFPS(), 0, 0, 20);
__________________
let live Изменено aNNiMON (25.01 / 17:38) (всего 2 раза) |
25.01.2011 / 18:23 | |
dzanis Пользователь Сейчас: Offline
Имя: Жаник Откуда: Rezekne Регистрация: 18.11.2010
| метод подсчёта FPS (by aNNiMON) static long fps, time, prevtime, delta, framecount;
static String getFPS() {
time = System.currentTimeMillis();
delta = time - prevtime;
framecount++;
if (delta >= 1000) {
fps = framecount * 1000 / delta;
prevtime = time;
framecount = 0;
}
return Long.toString(fps);
}
Перед или вписать g.setColor(0xFF0000);
g.drawString(getFPS(), 0, 0, 20);
Изменено dzanis (25.01 / 18:26) (всего 1 раз) |
4.02.2011 / 10:17 | |
Zvers Пользователь Сейчас: Offline
Регистрация: 06.02.2010
| при записи g.drawString(getFPS(), x, y, anchor) при каждом проходе paint'а будет выделяться память для строки getFPS(). Чтобы избежать этого, необходимо записать getFPS() в строку, а после вывода на экран обнулить её. В этом случае память не будет расходоваться "на ветер", но при этом FPS слегка упадёт.
|