![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| aaa25 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 18.12.2010 Репутация: нет Всего: нет |
в книге Горнакова "программирование на j2me" в примере 8.1
в строке "public TiledLayer Fon()throws IOException" netbeans ПРИ КОМПИЛЯЦИИ выдает ошибку "at MyGameCanvas.Fon(MyGameCanvas.java:49)". (WTK -тоже) что это за ошибка и как ее исправить? /** листинг 8.1 @author Станислав Горнаков класс MyGameCanvas */ // подключаем исключение IOException import java.io.IOException; import javax.microedition.lcdui.*; import javax.microedition.lcdui.game.*; public class MyGameCanvas extends GameCanvas implements Runnable { // создаем объект класса TiledLayer private TiledLayer fonPole; // создаем объект класса LayerManager private LayerManager lm; // логическа переменная для выхода из цикла boolean z; public MyGameCanvas() throws IOException { // обращаемся к конструктору суперкласса Canvas super(true); // инициалезируем fonPole fonPole = Fon(); // создаем менеджер уровней lm = new LayerManager(); // добовляем объект fonPole к уровню lm.append(fonPole); } public void start() { z = true; // создаем и запускаем поток Thread t = new Thread(this); t.start(); } /* метод создающий объект класса TiledLayer и загружающий фоновое изображение */ public TiledLayer Fon()throws IOException { // загрузка изображения из файла ресурса Image im = Image.createImage("/fon.png"); // создаем объект класса TiledLayer fonPole = new TiledLayer(/*столбцы*/10,/*строки*/10, im,/*ширина*/15,/*высота*/15); // разметка игрового поля int[] pole = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 5, 5, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 6, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 2, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 4, 4, 4, 3, 3, 3, 3, }; // цикл считывающий разметку поля for(int i = 0; i < pole.length; i++) { /* присваеваем каждому элементу игрового поля определенную ячейку изображения im*/ fonPole.setCell(i % 10, i / 10, pole[i]); } return fonPole; } public void stop(){ z = false; } public void run() { // получаем графический контекст Graphics g = getGraphics(); // бесконечный цикл while (z) { // рисуем графические элементы init(g); // останавливаем цикл на 20 милесекунд try { Thread.sleep(20); } catch (java.lang.InterruptedException zxz) {}; } } private void init(Graphics g) { // белый цвет фона для перерисовки экрана g.setColor(0xffffff); // размер перерисовки экрана g.fillRect(0, 0, getWidth(), getHeight()); // рисуем уровень с левого верхнего угла дисплея lm.paint(g, 0, 0); // двойная буферезация flushGraphics(); } } |
|||
|
||||
| oxigen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Файл "/fon.png" есть на месте?
|
|||
|
||||
| aaa25 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 18.12.2010 Репутация: нет Всего: нет |
есть ( нормально в папке res)
|
|||
|
||||
| oxigen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Какую именно ошибку выдает?
|
|||
|
||||
| aaa25 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 18.12.2010 Репутация: нет Всего: нет |
вот так ошибку выдает netbeans:
java.lang.IllegalArgumentException at javax.microedition.lcdui.game.TiledLayer.<init>(), bci=66 at MyGameCanvas.Fon(MyGameCanvas.java:33) at MyGameCanvas.<init>(MyGameCanvas.java:19) at MainGame.startApp(MainGame.java:21) at javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1 at com.sun.midp.midlet.MIDletPeer.startApp(), bci=7 at com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=269 at com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52 at com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8 at com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161 at com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26 Добавлено через 11 минут и 13 секунд ошибка на рисунке Присоединённый файл ( Кол-во скачиваний: 7 )
err.jpg 296,36 Kb |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Всё-таки - либо "/fon.png" не на месте, либо он не тех размеров.
Проверяй содержимое .jar в папке dist, он должен быть в корне и строчными буквами. |
|||
|
||||
| oxigen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Из документации:
public TiledLayer(int columns, int rows, Image image, int tileWidth, int tileHeight) Throws: NullPointerException - if image is null IllegalArgumentException - if the number of rows or columns is less than 1 IllegalArgumentException - if tileHeight or tileWidth is less than 1 IllegalArgumentException - if the image width is not an integer multiple of the tileWidth IllegalArgumentException - if the image height is not an integer multiple of the tileHeight Так что проверь высоту и ширину своей картинки. Кратны ли они 15-ти? |
|||
|
||||
| aaa25 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 18.12.2010 Репутация: нет Всего: нет |
похоже, действительно ошибка в рисунке fon.png, в ресурсах он 64\48 я заменил его рисунком 60\45 - прога выдала какой-то бред, но ошибки уже нет. спасибо, это уже кое-что...
|
|||
|
||||
![]()
|
FAQ раздела лежит здесь! |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |