Новичку нужна помощь
Решил перейти с мидлетпаскаля на яву. Естественно куча непонятного. Нужно ответить на пару вопросов с объяснением как и почему:)
1. В мидлетпаскале делал карту через массив множестава (type mapType=record). Сделал отдельный класс mapType(4 boolean, 1 int), и массив public mapType map[][]. Как можно в ручную задать массив только во флаге int? Пытался создать отдельный int массив и залит его в map[][].tileID(int), но мидлет виснет при выводе map. Ошибок не пишет. public int m[][] = { {1,1,1,1}, {1,0,0,1}, {1,0,0,1}, {1,1,1,1}, }; private void loadmap(){ for(c1=0;c1<4;c1++){ for(c=0;c<4;c++){ map[c][c1].tileID=m[c][c1]; }} } 2. При запуске на мобильнике мидлет предлагает выбрать класс для запуска. Даже если выбрать нужный пишет ошибку. На NetBeans эмуле и sjboy эмуле подобной проблемы нет. Как решить? 3. Как выполнять преобразование переменных? Из int в string и наоборот? |
Ответ: Новичку нужна помощь
4. Как узнать количество строк и столбцов в динамическом массиве?
|
Ответ: Новичку нужна помощь
1. Я не вижу ошибок в этом участке кода, кроме того, что следует писать:
Код:
for (int c1=0;c1<4;c1++) { Ты говоришь, что мидлет виснет при выводе карты, так приведи нам код, который ты используешь для вывода. 2. Щелкни правой кнопкой на проекте, выбери Properties -> Application descriptor -> вкладка MIDlets. Проверь, все ли там верно указано. 3. Код:
String str = "23"; Код:
public int m[][] = { |
Ответ: Новичку нужна помощь
Вывод:
protected void drawmap( Graphics g ) { g.setColor(0x000000); g.fillRect(0,0,this.getWidth(), this.getHeight()); for(c1=0;c1<4;c1++){ for(c=0;c<4;c++){ if(map[c][c1].tileID==0){g.drawImage( img1, c*step, c1*step, 0 );} if(map[c][c1].tileID==1){g.drawImage( img2, c*step, c1*step, 0 );} } } } Если выводить через m, то всё отлично. Да. c,c1 глобальные переменные. По привычке объявляю все переменные в начале кода:) Большое спасибо:) |
Ответ: Новичку нужна помощь
Ну, во-первых this.getWidth() писать не надо, достаточно просто getWidth().
Во-вторых, перед вторым if хорошо бы написать else, чтобы получилось else if. (Хотя твой подход вообще в корне неправильный) В-третьих, бросай привычку к глобальным переменным в качестве счетчиков. А почему все виснет - не знаю, попробуй поставить breakpoint в начале функции и в режиме отладки запустить (Я так понял, ты юзаешь NetBeans). |
Ответ: Новичку нужна помощь
Такой вывод карты только для того, чтобы разобраться с основами. Буду переходить на TiledLayer.
Спасибо за помощь! P.S. Ждите новую порцию вопросов:) |
Ответ: Новичку нужна помощь
Поправил дескриптор. Игра продолжает выводить список классов при запуске, хотя перестала выдавать ошибку (при нажатии на любой класс игра запускается).
Читал, что переменные типа byte и short переводятся в int при использовании. Целесообразно ли их использовать? И как перевести byte,short в int и обратно? (с переводом разобрался) Как перевернуть изображение на x градусов? |
Ответ: Новичку нужна помощь
Вложений: 1
Старайся всегда использовать int.
Цитата:
Код:
public static Image rotateImage(Image im, long alpha) { |
Ответ: Новичку нужна помощь
Всё пытаюсь разобраться с картой.
Написал на MP создание и вывод map. Декомпилировал. Поробовал сделать так же, как и в MP. Не вышло(Вылетает сразу после запуска). Может кто-нибудь написать работающий пример? map = new MapType[10][10]; public class MapType { public MapType(){ tileID = 0; vis = false; psb = false; } public MapType Copy(MapType maptype){ psb = maptype.psb; vis = maptype.vis; tileID = maptype.tileID; return this; } public boolean psb; public boolean vis; public int tileID; } |
Ответ: Новичку нужна помощь
В этом куске кода ошибок я не вижу.
|
поворот картинки
Цитата:
PHP код:
|
Часовой пояс GMT +4, время: 03:11. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot