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

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

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

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

Ответ
 
Опции темы
Старый 09.07.2008, 22:31   #31
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

А файл gr.class в проект добавлял? Вообще библиотеки к MP лучше писать одним файлом, а не разбивать на кучу файлов.
(Offline)
 
Ответить с цитированием
Старый 09.07.2008, 22:43   #32
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Всё добавлял. Не работает =( Так я просто тренируюсь, изучаю. Хотел написать класс, а добавить его к мидлет паскалю при помощи либы. Вот =( Не выходит...
- - -
Блин. У меня по ходу что-то с компилятором не в порядке... Пытаюсь откомпилировать либу пилигрима, мне ошибку пишет:
Lib_text.java:9: cannot find symbol
symbol  : variable G
location: class M
          MLT.SetTextPar(x, y, w, h, dy, fsz, fst, ft, M.G, s);
1 error
Указатель показывает на точку между M.G

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

Я если честно не уловил где g, который Graphics в классе gr получает значение M.G? Если этого нет, то простите, на чем мы рисуем?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (10.07.2008)
Старый 10.07.2008, 00:55   #34
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Ыыы... Пардон... Ща попробую исправить. Но, кстати, когда пытаюсь откомпилить твою либу, как раз компилятор ругается на M.G, которое ты передаёшь классу. Я уж не знаю почему. Класс M.class лежит где надо, его компилятор видит.
- - -
Добавил спустя пару минут:
Мда... Теперь компилятор и на мою либу ругается с точно такой же ошибкой. Указатель показывает на точку между M и G. То есть, как я понимаю, класс M.class видит, но пишет, что переменной G нет или что-то типа того =( Раньше пробовал подобное делать, вроде получалось... Что-то тут нездоровое...
- - -
Ещё спустя минут 7:
Блин. Я вообще ничего не понимаю. Заменил M.class на другой, из другого проекта - всё нормально откомпилировало! Видимо, у меня ещё и класс этот какой-то не сосем нормальный был... Но ведь в принципе от приложения не зависит. От любого ведь должен подойти, мидлетпаскалевского, разумеется.
- - -
Спустя почти два часа:
А можно как-нибудь из либы передать M.G сразу в класс, а не в определённую функцию? Можно, конечно, сразу в классе прописать
private Graphics g=M.G;
тогда работает. Но если поставить себе такое условие, что нельзя так делать. А в классе две функции. Одна из них будет через либу использоваться в паскале, а вторая многократно вызывается первой. Обоим им нужен M.G. Пока сделал, чтобы из первой во вторую передавалась переменная g в качестве параметра. То есть, первая из либы получает M.G, юзает там его, потом вызывается много раз вторая функция и каждый раз передаётся в неё полученный M.G... Во как.
- - -
Спустя ещё два часа:
Всё. Пора убить телефон ап стену и выкинуть комп в окно. Ничего у меня не получается. На эмуляторе идёт, на сименсе белый экран и висит. У брата на смарте тоже белый экран и висит. Переписал всё просто в либу, без класса. Ситуация не изменилась. Добавил в каждую функцию try/catch, всё равно на эмуляторе идёт, а на телефонах нет. В чём может быть дело? Памяти, вроде, тут не использует много. Всё только примитивная работа с графикой...

Последний раз редактировалось Phantom, 10.07.2008 в 05:13.
(Offline)
 
Ответить с цитированием
Старый 10.07.2008, 08:18   #35
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

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

SUNовский компилятор. Через командную строку. javac.exe и preverify1.1.exe...
(Offline)
 
Ответить с цитированием
Старый 10.07.2008, 14:42   #37
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Не советую компилять либы напрямую через javac(нсли это WTK) - у меня только 2 из 10 нормально компилятся, на остальных мобила зависает - моторовский отладчик в MIDWay пишет ошибку верификации класса. Юзайте JB и будет вам счастье =).
(Offline)
 
Ответить с цитированием
Старый 10.07.2008, 15:08   #38
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Можно и напрямую javac, просто не забывайте добавлять -source 1.3 -target 1.3, чтобы соответсвовало CLDC 1.1
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Piligrim за это полезное сообщение:
Phantom (10.07.2008), ViNT (10.07.2008)
Старый 10.07.2008, 15:19   #39
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Пилигрим, так ведь прога-то получается в CLDC 1.0. По крайней мере так в манифесте прописано. Но попробую добавить эти ключи. А JB я как-то, вроде, качал, точно не помню. Ещё когда в первый раз хотел заняться Джавой. Что-то он мне не понравился, может путаю, или это я про MS VS... О_о То, что VS мне не понравился - это точно, один дебагер только ваще задрал. В основном брата =) У него постоянно из игр выкидывало с какими-то ошибками =) А вообще, мне среду разработки не надо, компилятора хватает. Так понять суть работы проще. А ещё подумываю написать он лайн компилятор, чисто так, ради интереса. Буду с локала запускать. Кто тестером будет? =)
- - -
Чуть позже:
Пилигрим, ты гений! Добавил ключи и всё работает!!!
- - -
Позднее:
А у брата на смарте так и белый экран :'(

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

для CLDC 1.0 по-моему вообще надо -target 1.1.
Да, вот точно:
По реализации пересекающихся с J2SE классов, версии байт-кода CLDC 1.0 соответствует JDK 1.1, CLDC 1.1 –- JDK 1.3.
(Offline)
 
Ответить с цитированием
Старый 10.07.2008, 19:17   #41
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Написал -source 1.1 -target 1.1 вместо -source 1.3 -target 1.3.
Компилятор ругался на -source 1.1.
Написал -source 1.3 -target 1.1 - всё заработало!!! И на сименсе, и на смарте, и на эмуле!!! Родили, блин :D :D :D Вот оно - счастье! =)
- - -
P.S: Ничего, что эта тема больше походит на мой блог?

Последний раз редактировалось Phantom, 10.07.2008 в 19:48.
(Offline)
 
Ответить с цитированием
Старый 11.07.2008, 06:57   #42
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Блин, Джава вообще со строками работать умеет??? Я полночи инфу в гугле ищу, ещё смотрю книжки Пирумяна и Горнакова. Ничего не могу толком найти. Или я чего-то не понимаю. Как мне, например, получить субстроку от строки, начиная с определённого по счёту символа? Как узнать длину строки? Как поиндексно обращаться к строке? Ну например:
String s = "Привет";
String str1 = s[0]; // str = "П";
String str2 = s[3]; // str = "в";
Ну хоть что-то, блин, посоветуйте, ведь в мидлет паскале есть функции для работы со строками! Пробовал декомпилировать мидлетпаскалевский S.class - ничего не понял =(
- - -
Позже:
Создал по аналогии с декомпилированным мидлетпаскалевским классом вот такую функцию:
 public static int myfunc(String s,int i){
return s.charAt(i);
 }
Методом тыка довольно быстро понял, что функция возвращает ASCII код символа с номером i строки s. Причём, если указать несуществующий индекс, то есть больше, чем длина строки, то мидлет повисает =) Уже что-то... На основе этого кучу самодельных функций для обработки строк можно сделать =) Но вот нужно ли? Должны быть в джаве ещё какие-нибудь функции!
- - -
Я так понимаю, в моём примере выше s - можно назвать объектом типа String, а всё, что после приписывается через точку - это типа методы что ли? Это я просто так спрашиваю, так как с формулировками ещё не особо разобрался...

Последний раз редактировалось Phantom, 11.07.2008 в 07:47.
(Offline)
 
Ответить с цитированием
Старый 11.07.2008, 08:13   #43
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Ну ты даешь. Это же азы.

String s = "Привет";

Длину строки теперь можно узнать так:

int len = s.length();

Вырезать одну букву:

char ch = s.charAt(0);

Отрезать кусок текста:

String s2 = s.substring(2, 5); // Результат: "иве"

PS: Юзай NetBeans 6.1 и будет тебе щастье. Советую также заглядывать в документацию по MIDP2.0 из пакета WTK.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (11.07.2008)
Старый 11.07.2008, 08:21   #44
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Спасибо огромное! Я заглядывал в документацию MIDP2.0 из пакета WTK, только дальше главной страницы не пошёл, что-то мне всё показалось там не в тему =)
- - -
Слушайте, а вот если я использую indexOf(">") и в строке находит этот символ, то возвращается его индекс в строке, а если нет - мидлет повисает на этом месте =( А можно как-нибудь сделать так, чтобы в таком случае возвращался индекс последнего символа ну или символ конца строки типа?.. Пробовал засунуть эту функцию в условие if и приравнять внутри условия к нулю:

if((i=s.indexOf(">"))==0) i=s.length()-1;

То есть по моей логике если символ будет найден в строке, то возвратится TRUE и условие будет ложным, а если символ не найден, то возвратится FALSE, который при сравнивании с нулём выдаст TRUE и i будет равно последнему символу =) В php я подобным способом пользуюсь часто, думал и сдесь прокатит... Так ведь нет... Мидлет повисает при запуске... Почему? Может вставить try? А он не тормозит в общем? Просто я после php помешан на оптимизации =) А в скобочках у catch() что писать? Смотрел исходники разные, там по-разному пишут. В общем, что в таких ситуациях обычно делают при кодинге на Джаве?
- - -
P.S: А компилятор у меня теперь почти никогда не ругается, то ли совет Пилигрима помог, то ли я меньше ошибок делать стал =)
= = =
Блиин. Так тоже повисает:

try{
i=s.indexOf(">");
}catch(Exception exception){
i=s.length()-1;
}
= = =
Ещё такой вопрос. Если у меня есть строка "32fd45" - цвет rrggbb, то как мне эту строку самым простым способом заюзать в setColor?

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

То есть нужно как-то строку вида "rrggbb" превратить в 0xrrggbb (это как называется? Константа? Ну типа три байта). Можно, конечно, написать функцию, которая пропарсит строку и сделает три числа 0-255 для передачи их в функцию setColor(), но мне кажется можно как-то проще это сделать.
(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, время: 01:47.


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