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 кб.) Скачано 388 раз   | 
  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    Супервизор 
   Сейчас: Offline 
 Имя: Витёк Регистрация: 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 кб.) Скачано 1690 раз   | 
  25.01.2011 / 17:36 |  | 
aNNiMON    Супервизор 
   Сейчас: Offline 
 Имя: Витёк Регистрация: 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 слегка упадёт.
   |