Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > FAQ

FAQ Часто задаваемые вопросы

Ответ
 
Опции темы
Старый 19.07.2008, 23:59   #76
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

А я как раз заметил, что FW всегда одинаковый... Во всех проектах =) Вроде...
- - -
public void destroyApp(boolean flag){
   
null;
   
M.null;
   
M.null;
   
CD null;
   
null;
   
TB null;
   
null;
   
null;
   
fw null;
   
LC null;
   
notifyDestroyed();
 } 
Скажите мне, нафига он это делает? Ведь дестрой происходит при выходе из приложения вроде как. А не пофиг ли уже джава машине, если уже прогу закрывать надо? Она сама потом и оперативу почистит и всё в порядок приведёт...
- - -
public class extends Canvas
    
implements Runnable
Что обозначает implements Runnable? Если написано extends, то это, на сколько я знаю, наследование, а implements - это что?

Последний раз редактировалось Phantom, 20.07.2008 в 00:57.
(Offline)
 
Ответить с цитированием
Старый 20.07.2008, 11:51   #77
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

implements появляется если класс включает в себя какой-то interface
С их помощью удобно делать callback и т.д.
ЗЫ: Давайте уж такие серьезные вопросы по яве задавать в соответствующей теме. Уж это к написанию библиотек имеет косвенное значение.
(Offline)
 
Ответить с цитированием
Старый 26.07.2008, 19:49   #78
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Тут писали, что размер дисплея получается так:
FW.CD.getWidth;  
FW.CD.getHeight
Не работает:
cannot find symbol
symbol  : variable getHeight
location: class javax.microedition.lcdui.Displayable
h=FW.CD.getHeight-y*2;
       ^
- - -
Добавил позже:
Долго же я сам до истины допирал =) Оказывается, надо писать так:
FW.CD.getWidth();   
FW.CD.getHeight(); 
Со скобочками.
- - -
What eto da...
Взгляните сюда. Написал либу. Класс содержит два метода. Первый - init - Высчитывает по специальной формуле размер окошка и создаёт два полупрозрачных чёрных объекта типа Image (рисунка, грубо говоря). Второй - frame - Рисует эти полупрозрачные рисунки на канвасе в четырёх местах таким образом, что получается как бы полупрозрачная рамка.
import javax.microedition.lcdui.*;

public class 
Lib_ramka{
// ***********************************
 
public static int x,y,w,h;
 public static 
Image a1,a2,bg;
 public static 
Graphics g=M.G;
 public static 
Displayable d=FW.CD;
// ***********************************
 
public static void init(){
   
x=(d.getWidth()*6)/100;
   
w=d.getWidth()-x*2;
   
y=(d.getHeight()-(w*86)/100)/2;
   if(
y<x)y=x;
   
h=d.getHeight()-y*2;
   
int p[]=null;
   
p=new int[x*d.getHeight()];
   for(
int i=0;i<p.length;i++)
   
p[i]=0xbb000000;
   
a1=Image.createRGBImage(p,x,d.getHeight(),true);
   
p=new int[w*y];
   for(
int i=0;i<p.length;i++)
   
p[i]=0xbb000000;
   
a2=Image.createRGBImage(p,w,y,true);
 }
// ***********************************
 
public static void frame(){
   
g.drawImage(a1,0,0,g.LEFT|g.TOP);
   
g.drawImage(a1,d.getWidth(),0,g.RIGHT|g.TOP);
   
g.drawImage(a2,x,0,g.LEFT|g.TOP);
   
g.drawImage(a2,x,d.getHeight(),g.LEFT|g.BOTTOM);
 }
// ***********************************

В эмуляторе работает. На моём сименсе С75 - нет. Кто подскажет, в чём дело? Ничего не зависает, просто рамочка не рисуется, мидлет дальше без неё выполняется...

Последний раз редактировалось Phantom, 27.07.2008 в 01:01.
(Offline)
 
Ответить с цитированием
Старый 27.07.2008, 11:39   #79
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

public static Graphics g=M.G;
public static Displayable d=FW.CD;
я бы так не делал. static отрабатывает при запуске программы, когда эти переменные еще не имеют значений. Перенеси в init
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (27.07.2008)
Старый 27.07.2008, 15:56   #80
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Переделал. Ничего не изменилось. В эмуляторе работает, в телефоне нет. Сделал так:
Запускается мидлет, проверяется память, вызывается init, проверяется память, загружается и рисуется картинка, проверяется память, вызывается frame, проверяется память. Так вот.
1) при запуске задействовано 17% памяти
2) после вызова init - 19%
3) после рисования картинки - 23%
4) после вызова frame - 26%
- - -
Проверил на Nokia N72:
Работает как надо... С полупрозрачностью раньше уже играл, на сименсе она работает, но в данном случае не хочет... :'(

Последний раз редактировалось Phantom, 27.07.2008 в 16:26.
(Offline)
 
Ответить с цитированием
Старый 28.07.2008, 02:56   #81
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

WM.l.getWidth();
H=M.l.getHeight(); 
должно сработать.
(Offline)
 
Ответить с цитированием
Старый 28.07.2008, 03:37   #82
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Так эту проблему я решил, выше написано, в том же посте =) Но с сименсом ничего так и не могу поделать, не выводит он на экран рамку =(
(Offline)
 
Ответить с цитированием
Старый 19.10.2008, 19:18   #83
KASPER
AnyKey`щик
 
Регистрация: 19.10.2008
Адрес: Краснодар
Сообщений: 2
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

А где скачать прогу JGRASP?
__________________
Век Живи-Век Учись,но серавно дураком памрёшь!

Афтор Коротаев Павел
(Offline)
 
Ответить с цитированием
Старый 09.01.2009, 20:13   #84
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

http://spider.eng.auburn.edu/user-cg...ad_jgrasp.html
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dr.SanX (27.01.2009)
Старый 24.01.2009, 20:15   #85
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Парни проблема: Я компилирую либы с помощью JCreator. Пытаюсь компильнуть первый пример odda-там где текст. Куда надо кинуть m.class? И какой? Это тот который мона выдернуть из любого мидлета MP? Не компилируется-2errors(package javax.microedition.lcdui does not exist; package M does not exist)
(Offline)
 
Ответить с цитированием
Старый 24.01.2009, 22:05   #86
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

У мя установлено
J2ME Wireless Toolkit 2.2
jdk-1_5_0_16
jgrasp
JCreator 4.50 Pro
Короче, шо надо добавлять(я не знаю-M.class иль F.java иль ешо што-нить), штоб компилировалось
компилировались проекты с использованием MP классов?
(Offline)
 
Ответить с цитированием
Старый 25.01.2009, 00:00   #87
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Этого более чем достаточно.
Я пользуюсь вот таким bat файлом
@SET JDK=C:\Program Files\Java\jdk1.6.0_11
@SET WTK=C:\Program Files\NetBeans 6.5\mobility8\WTK2.5.2
@rem @SET SDK=C:\Borland\SDK_5.2.1\EmulatorA.1\lib
@rem del tmpclasses\*.class
@"%JDK%\bin\javac" -bootclasspath "%WTK%\lib\midpapi20.jar";"%WTK%\lib\cldcapi11.jar";"%WTK%\lib\jsr75.jar";"%WTK%\lib\mmapi.jar";"%WTK%\lib\jsr082.jar";"D:\Java\lib\tinylinegzip.zip";tmpclasses -classpath tmpclasses -source 1.3 -target 1.3 -d tmpclasses src\*.java
@"%WTK%\bin\preverify" -classpath "%WTK%\lib\midpapi20.jar";"%WTK%\lib\cldcapi11.jar";"%WTK%\lib\jsr75.jar";"%WTK%\lib\mmapi.jar";"%WTK%\lib\jsr082.jar";"D:\Java\lib\tinylinegzip.zip";tmpclasses -d D:\java\MIDletPascal\Libs D:\java\MIDletPascal\Libs\Lib\tmpclasses
pause
Пути естественно исправить на свои
Дерево папок у меня такое
MIDletPascal
-Libs
--Lib
---src
---tmpclasses
Соответственно, после компиляции библиотека автоматически попадает в папку Libs МР и ее можно тестировать.
Чтобы компилировать библиотеки работающие с основными классами, декомпилируем их и кладем в папку src

Последний раз редактировалось Piligrim, 25.01.2009 в 00:05.
(Offline)
 
Ответить с цитированием
Старый 25.01.2009, 14:23   #88
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

pilgrim, сорри за флуд. Просто я не понял. Я не понимаю в bat файлах. как создавать, где писать, што писать. Если мона еще раз поподробнее, или обьясни без БАТ файлов, типа куда шо-кинуть, например ерез jcreator, создается папка, в папке есть папвка src-где лежит мой java. Обьяните, я просто начинаю в этом деле.
А как компилить либы с использованием MP классов? Скажем, я хочу обратитьься к M.G. компилятор ругается на отсутствие этих классов, может надо прилагать M.java к файлу библиотеки? Опишите plz такую компиляцию, а то я чисто java классы могу использовать, а к классам MP нет доступа.
(Offline)
 
Ответить с цитированием
Старый 25.01.2009, 17:40   #89
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

bat файлы - это простые текстовые файлы с командами. Создать можно любом текстовом редакторе. Выполняются простым двойным кликом в эксплорере или TotalCommander.
Во вложении, исходники FW и M классов. Просто кладем их в папку src и ваша библиотека при компиляции их увидит. Аналогично поступаем с любыми другими системными классами. Декомпилятор тоже есть во вложении.
При использовании jcreator поступаем аналогично. Исходники кладем в папку src. По идее нужно еще вызывать preverify после компиляции для проверки корректности классов. Как это сделать в jcreator не знаю, сам пользуюсь NetBeans.
Вложения
Тип файла: zip Lib.zip (197.5 Кб, 518 просмотров)
(Offline)
 
Ответить с цитированием
Старый 25.01.2009, 19:53   #90
temned
Знающий
 
Аватар для temned
 
Регистрация: 29.07.2008
Адрес: Россия,Саратов
Сообщений: 206
Написано 22 полезных сообщений
(для 33 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

pilgrim, пробовал и с bat файлом шо-нить сдлелать, и те исходники которые ты дал кинул-не компилируется. Вот Сяс ь у мя пишет такие ошибки: package javax.microedition.lcdui does not exist
cannot access javax.microedition.lcdui.Graphics
Может пример-гове***?
Вот которй я птаюсь скомпилировать
import javax.microedition.lcdui.Graphics;

class Lib_test
{
    public static void printtext(String s, int x, int y)
    {
        M.G.drawString(s, x, y, 20);
    }
}
если мона дайте самый простой пример, мона с использованием классов MP

Последний раз редактировалось temned, 25.01.2009 в 20:01.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависит ли MidletPascal от установленного пакета Java? artemff Прочие вопросы 4 11.02.2010 02:44
Хорошие 3Д движки \ либы klopmaks C++ 83 11.11.2009 12:56
Как подключать либы?.. beloff FAQ 2 25.12.2007 14:03
помогите с написанием либы Eddy MidletPascal 23 17.12.2007 23:38
Как компилить либы с помощью WTK??? kolyacher Прочие вопросы 4 03.11.2007 11:19


Часовой пояс GMT +4, время: 09:33.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com