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

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

Вернуться   www.boolean.name > Программирование игр для мобильных телефонов > JAVA Micro Edition

JAVA Micro Edition Низкоуровневое программирование мобильных телефонов.

Ответ
 
Опции темы
Старый 10.07.2012, 16:43   #1
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Смущение Hello, World!

Помогите пожалуйста..
Нужна максимально простая заготовка программы, которая делает то же, что и Hello World из MP. Ибо примеры в netbeans какие-то дикие, с неудаляемыми комментариями и прочим бредом >_<
__________________
---
(Offline)
 
Ответить с цитированием
Старый 10.07.2012, 20:44   #2
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,217
Написано 436 полезных сообщений
(для 784 пользователей)
Ответ: Hello, World!

Класс midlet
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;

public class Midlet extends MIDlet {

    public static Canv canv;
    public static Display display;
    public static Midlet md;

    public void startApp() {
        md = this;
        canv = new Canv();
        display = Display.getDisplay(this);
        display.setCurrent(canv);
        (new Thread(canv)).start();
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
        canv = null;
        notifyDestroyed();
    }
}
класс Canv
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class Canv extends Canvas implements Runnable {

    protected static Image screen;
    protected static Graphics G;

    public Canv() {
        setFullScreenMode(true);
        screen = Image.createImage(getWidth(), getHeight());
        G = screen.getGraphics();
    }

    protected void paint(Graphics g) {
        g.drawImage(screen, 0, 0, 20);
    }

    public void run() {
        //сюда всякий код
    }
    
    //следующая функция не нужна, я её для удобства после MP добавил
    protected void delay(int t) {
        try {
            Thread.sleep(t);
        } catch (InterruptedException ex) {
        }
    }
}
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Старый 11.07.2012, 07:36   #3
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: Hello, World!

^_^
Спасибо, а то дико неудобно те танкоподобные примеры разбирать.
__________________
---
(Offline)
 
Ответить с цитированием
Старый 11.07.2012, 13:24   #4
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: Hello, World!

Оу. Я туплю. А как "Hello, World" написать?
Что бы я ни делал, экран остаётся чистым.
__________________
---
(Offline)
 
Ответить с цитированием
Старый 11.07.2012, 21:21   #5
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,217
Написано 436 полезных сообщений
(для 784 пользователей)
Ответ: Hello, World!

repaint() или типа того
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Старый 11.07.2012, 21:22   #6
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: Hello, World!

Вроде не получалось, сейчас попробую ещё раз..
__________________
---
(Offline)
 
Ответить с цитированием
Старый 11.07.2012, 21:25   #7
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: Hello, World!

public void run() 
{
    
G.fillRect(551010);
    
this.repaint();

ЧЯДНТ?
__________________
---
(Offline)
 
Ответить с цитированием
Старый 11.07.2012, 21:26   #8
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,217
Написано 436 полезных сообщений
(для 784 пользователей)
Ответ: Hello, World!

Ты там ничего нарисовать не хочешь?
И да, метод delay неспроста добавлен
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
IDOL 1234 (11.07.2012)
Старый 11.07.2012, 21:30   #9
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: Hello, World!

Ты там ничего нарисовать не хочешь?
Хочу, хочу Только не могу.
__________________
---
(Offline)
 
Ответить с цитированием
Старый 11.07.2012, 21:32   #10
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: Hello, World!

Я вообще не уверен, что мидлет стартует, ибо белый экран со стрелочкой "назад".
__________________
---
(Offline)
 
Ответить с цитированием
Старый 27.07.2012, 10:14   #11
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,374
Написано 489 полезных сообщений
(для 882 пользователей)
Ответ: Hello, World!

Сообщение от IDOL 1234 Посмотреть сообщение
public void run() 
{
    
G.fillRect(551010);
    
this.repaint();

ЧЯДНТ?
Проблема в G. Нельзя сохранять экземпляр графикса из метода paint НА ВРЕМЯ, ПРЕВЫШАЮЩЕЕ ВЫЗОВ МЕТОДА PAINT(). При завершении паинта этой переменной приходит конец.

Решение: рисуй всё в paint'e, управляй содержимым через состояния проги, которые сам назначишь.
В run'e вызывай repaint(); serviceRepaint();

В паинте необязательно делать месиво из кода, можно создать свои функции рисования (передавать в них экземпляр графикса можно) и вызывать их:
public void paint(Graphics g) {
  if(state == STATE_GAME) {
    drawMap(g); 
    drawGui(g);
  }
}
private void drawMap(Graphics g) {
   //карта
}
private void drawGui(Graphics g) {
   //интерфейс
}
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


Часовой пояс GMT +1, время: 23:23.


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