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

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

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

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

Ответ
 
Опции темы
Старый 16.07.2008, 16:24   #61
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

По первому вопросу: из-за одинаковых переменных точно не может быть, чтобы понять в чем дело, нужен код библиотек и код на MP. По второму - массив передать нельзя, можно сделать так, чтобы массив с определенным именем создавался в программе, а библиотека напрямую читала данные из него. В java массивы создаются так:
public static String mass[]=null;

.....

mass=new String[10];//10-число элементов, нумерация с 0. 
(Offline)
 
Ответить с цитированием
Старый 16.07.2008, 16:44   #62
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

А джава умеет увеличивать размер массива по ходу ввыполнения программы? Ну, например, я выделил 10 ячеек, а мне потом 11 понадобилось? На сколько я знаю, так нельзя ни в Джава, ни в С++... Почему такая недоработка языков?
mass=new String[10];//10-число элементов, нумерация с 0.
Это значит, что я буду иметь 10 ячеек: с mass[0] по mass[9] ИЛИ я буду иметь 11 ячеек с mass[0] по mass[10]?
А добавлять в массив значение обязательно с указанием индекса?
Или можно так: mass[]="Привет";
А ещё я читал, что массиввы в Джава памяти много кушают оперативной.
Какой размер массивва считается приемлемым, а какой перебором?
Ну вот, например, я хочу держать в памяти массив из 100 строковых ячеек, в каждой строка около 40 символов. Это нормально?
- - -
Извиняюсь, что осыпаю вопросами, но просто больше негде спрашивать.
Вот предположим мне нужно сделать такой эффект:
На экране что-то нарисовано. Нужно как бы наложить серую плёнку на весь экран. То есть выглядеть это будет, словно экран потемнел, потускнел типа =)
А потом взять и вернуть экран в предыдущее состояние. Видел подобный эффект в некоторых играх. Как это сделать - я даже не знаю с какой стороны подойти. В теории есть некоторые мысли. Скопировать в некий буфер (например в массив aarrggbb) каким-нибудь образом весь экран, потом пересчитать каждый пиксел в потускневший вид и вывести на экран. Потом вывести из буфера первоначальный вид экрана.
Есть другая мысль, без пересчёта пикселов вручную. Просто залить весь экран серым цветом с альфа-прозрачностью. Но его перед этим разумеется копировать, чтобы потом опять восстановить.
Так вот. Стоит ли вообще это всё делать? Возможно вся эта операция будет на столько медленной, что мой сименс, к примеру, будет 10 секунд эту "пелену" накладывать. О_о
- - -
Блин, где можно исходников на Джава найти? Побольше бы. Того глядишь, я сам разбираться буду потихоньку =)
= = =
Добавил позже:
Нашёл инфу по drawRGB()... Заюзал... Сделал типа тест...
Мой сименс показал 1 fps :'( То есть он успевает только одно перекрытие пеленой в секунду сделать. То есть собственно сама операция и длится секунду... Это очень плохо...

Последний раз редактировалось Phantom, 16.07.2008 в 18:57.
(Offline)
 
Ответить с цитированием
Старый 16.07.2008, 21:09   #63
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Сообщение от Phantom_wc Посмотреть сообщение
А джава умеет увеличивать размер массива по ходу ввыполнения программы? Ну, например, я выделил 10 ячеек, а мне потом 11 понадобилось? На сколько я знаю, так нельзя ни в Джава, ни в С++... Почему такая недоработка языков?
Похоже никак нельзя, хотя, как вариант - переписать данные в другой массив, и пересоздать его заново с новым размером.

Сообщение от Phantom_wc Посмотреть сообщение
Это значит, что я буду иметь 10 ячеек: с mass[0] по mass[9] ИЛИ я буду иметь 11 ячеек с mass[0] по mass[10]?
10 ячеек c mass[0] по mass[9]

Сообщение от Phantom_wc Посмотреть сообщение
А добавлять в массив значение обязательно с указанием индекса?
Только по индексу.

Сообщение от Phantom_wc Посмотреть сообщение
А ещё я читал, что массиввы в Джава памяти много кушают оперативной.
Какой размер массивва считается приемлемым, а какой перебором?
Ну вот, например, я хочу держать в памяти массив из 100 строковых ячеек, в каждой строка около 40 символов. Это нормально?
Берешь LIb_memory и смотришь, сколько оперативки есть, сколько ест прога без массива, сколько ест с массиво, сколько остается, и смотришь, приемлемо это или нет.

Сообщение от Phantom_wc Посмотреть сообщение
- - -
Извиняюсь, что осыпаю вопросами, но просто больше негде спрашивать.
Вот предположим мне нужно сделать такой эффект:
На экране что-то нарисовано. Нужно как бы наложить серую плёнку на весь экран. То есть выглядеть это будет, словно экран потемнел, потускнел типа =)
А потом взять и вернуть экран в предыдущее состояние. Видел подобный эффект в некоторых играх. Как это сделать - я даже не знаю с какой стороны подойти. В теории есть некоторые мысли. Скопировать в некий буфер (например в массив aarrggbb) каким-нибудь образом весь экран, потом пересчитать каждый пиксел в потускневший вид и вывести на экран. Потом вывести из буфера первоначальный вид экрана.
Есть другая мысль, без пересчёта пикселов вручную. Просто залить весь экран серым цветом с альфа-прозрачностью. Но его перед этим разумеется копировать, чтобы потом опять восстановить.
Так вот. Стоит ли вообще это всё делать? Возможно вся эта операция будет на столько медленной, что мой сименс, к примеру, будет 10 секунд эту "пелену" накладывать. О_о
- - -
А просто. В PhotoShop'е делаешь изображение пленки(серый прямоугольник с нужной альфой), и в нужный момент просто выводишь его поверх сцены с помощью DrawImage. Это самый быстрый вариант.


Сообщение от Phantom_wc Посмотреть сообщение
Блин, где можно исходников на Джава найти? Побольше бы. Того глядишь, я сам разбираться буду потихоньку =)
= = =
Искать надо, сайтов с исходниками очень много. Но лучше брать не только исходники, но и хороший самоучитель - там вся объектная модель расписана, стандартные классы и все такое. Ну и доки из WTK читать, естесно.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (16.07.2008)
Старый 16.07.2008, 22:17   #64
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

в Java есть еще понятие вектора, это безразмерный массив, грубо говоря, но и скорость его работы в разы ниже.
(Offline)
 
Ответить с цитированием
Старый 17.07.2008, 01:49   #65
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

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

А аналог delay() какой в Джаве? Читал что-то про таймер, но больно он заумный какой-то...
(Offline)
 
Ответить с цитированием
Старый 18.07.2008, 01:59   #67
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Аналога delay как такового нет, MP запускает код в потоке (Thread), а Delay - это вызов Thread.sleep.
(Offline)
 
Ответить с цитированием
Старый 18.07.2008, 14:48   #68
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Поставил я НетБеанс... И как там j2me проект создать? О_о что-то я не пойму...
(Offline)
 
Ответить с цитированием
Старый 19.07.2008, 08:13   #69
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Сообщение от Phantom_wc Посмотреть сообщение
Поставил я НетБеанс... И как там j2me проект создать? О_о что-то я не пойму...
Выбираешь File --> New Project.
В визарде проектов выбираешь Mobility --> MIDP Application (если хочешь написать программку) или Mobile Class Library (если библиотеку функций).
Набираешь имя проекта и всё.
Теперь чтобы добавить Java файл в проект нажимаешь в левом окне Project по своему проекту правой кнопкой мыши и выбираешь New --> Java Class. Пишешь имя класса, потом компилишь. Всё просто.

Может такое быть, что у тебя модуль плагинов Mobility не установлен. Зайди в Tools --> Plugins и убедись, что данный модуль есть и он подключен. Если нету - загрузи его.
(Offline)
 
Ответить с цитированием
Старый 19.07.2008, 19:00   #70
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Так и есть: нет у меня этого модуля. Зашёл в плагины, там есть список всякой всячины, можно напротив каждой галочку поставить, а внизу кнопка Инсталл... Так вот, там куча всяких мобилитей. Какую именно инсталлить? Пока ставлю просто "мобилити", посмотрим, может прокатит =)
- - -
Чуть позже:
Поставил, появилось мобилити в создании проекта. Нажимаю next и мне выдаёт вот это: http://wapcode.ru/O_o.png (9 Kb)
Это что? У меня всякие jdk, jre, wtk - всё установлено. Чё ему ещё-то нужно?
- - -
Гораздо позже:
Ыы... Там просто нажал кнопачку, там указал папку с WTK и всё работает вроде... Пойду Хэллоу ворлд писать =)
- - -
Блин...
Не работает мой Хэллоу ворлд... Ну это ладно, разберусь. Скажите мне, какую структуру программы лучше делать? В главном классе лучше только объявить
startApp()
pauseApp()
destroyApp()
, а всё остальное писать в отдельном классе/классах. Так удобнее или нет? Как вообще делают?

Последний раз редактировалось Phantom, 19.07.2008 в 21:58.
(Offline)
 
Ответить с цитированием
Старый 19.07.2008, 22:14   #71
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

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

Чё, реально что ли? Блин, почему всё так сложно??? Я вообще не могу понять структуру джава программ...
(Offline)
 
Ответить с цитированием
Старый 19.07.2008, 22:47   #73
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Поковыряйся декомпилятором в бинарниках MP, может что-то прояснится(я java так изучать начинал =) ). А вообще, советую купить хороший самоучитель.
(Offline)
 
Ответить с цитированием
Старый 19.07.2008, 23:19   #74
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

У меня есть книжки Пирумяна и Горнакова. В электронном виде. Пирумяна я вообще не понимаю, а Горнакова ооочень немного =) А английский я почти не знаю. Если читать описание функций - это ещё ладно, как-нибудь соображу, но если учиться по английским учебникам - это для меня нереально.
- - -
А классы мидлетпаскалевские всегда байт в байт одинаковые? Кроме M.class. Ну, например, FW, P, S...
(Offline)
 
Ответить с цитированием
Старый 19.07.2008, 23:40   #75
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Сообщение от Phantom_wc Посмотреть сообщение
А классы мидлетпаскалевские всегда байт в байт одинаковые? Кроме M.class. Ну, например, FW, P, S...
На счет FW сказать не могу, а остальные по-моему всегда одинаковые.
(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, время: 03:49.


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