Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> появление черного экрана 
:(
    Опции темы
ИванМ
Дата 2.2.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: нет
Всего: 23



Почему-то у меня в приложении иногда все обрывается и на несколько милисекунд появляется черный экран. И в эмуляторе WTK и в самом телефоне. 
Вроде исключений и ошибок в этот момент не происходит.
Что с этим делать?
Я пользуюсь GameCanvas, вывожу все с помощью draw*.
PM MAIL   Вверх
dive
Дата 2.2.2009, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 25.10.2007
Где: Санкт-Петербург

Репутация: 3
Всего: 5



paint блокируется скорее всего или осуществляется выход по условию из paint после очистки экрана.
вы экран черным цветом очищаете?

PM MAIL WWW Skype GTalk Jabber MSN   Вверх
ИванМ
Дата 2.2.2009, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: нет
Всего: 23



Я paint'ом не пользуюсь. Делаю так:
Graphics g=getGraphic();
draw*;
...
flushGraphics();
Это не правильно?
Экран очищаю с помощью заливки фонового рисунка.
PM MAIL   Вверх
dive
Дата 2.2.2009, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 25.10.2007
Где: Санкт-Петербург

Репутация: 3
Всего: 5



правильно, я run имел ввиду. не блокируется он случаем?

вот тут основы http://developers.sun.com/mobility/midp/tt...nvas/index.html
тут тоже самое только на русском http://www.mobilab.ru/articles/33/

т.е. экран заливается картинкой? а не черным фоном?
может быть покажете основной игровой цикл?
PM MAIL WWW Skype GTalk Jabber MSN   Вверх
ИванМ
Дата 2.2.2009, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: нет
Всего: 23



У меня игра типа стратегии. Поэтому run'ом не пользуюсь. Просто реагирую на нажатие кнопки.
Вот, для примера класс меню. Он тоже бывает глючит в момент нажатия кнопок:

Код

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

public class Menu extends GameCanvas
{
    public static Menu canvas;
    
    private static Image imgBG=null; 
    
    private MyCanvas backCan;
    
    private String[] Strs;
    
    private int selected=0, count=0;
    
    Text text=new Text();
    
    public Menu(MyCanvas can, String[] strs) throws Exception 
    {        

        super(false);

        canvas=this;
        backCan=can;
        
        if(imgBG==null)
            imgBG=Image.createImage("/menu_bg.png");
        
        setFullScreenMode(true);
        
        count=strs.length;
        Strs=strs;
        
        Graphics g=getGraphics();
        backCan.draw(g);
        draw(g);
        flushGraphics();
        
    }
    
    public void draw(Graphics g)
    {
        for(int j=0;j<2;j++)
            g.drawImage(imgBG, (getWidth()-imgBG.getWidth())/2, j*imgBG.getHeight()+(getHeight()-imgBG.getHeight()*2)/2, Graphics.TOP|Graphics.LEFT);
        
        g.setColor(75, 20, 20);
        g.fillRect((getWidth()-Strs[selected].length()*7)/2-5, selected*17+(getHeight()-Strs.length*17)/2,Strs[selected].length()*7+10, 17);
        
        for(int i=0;i<Strs.length;i++)
            Text.draw(g, -1, Strs[i], (getWidth()-Strs[i].length()*7)/2, i*17+(getHeight()-Strs.length*17)/2);
        
    }

    protected void keyPressed(int keyCode)
    {
        if(keyCode==KEY_NUM8 || keyCode==MainCanvas.KEY_DOWN)
        {
            selected++;
            if(selected>count-1)
                selected=0;
        }
        else if(keyCode==KEY_NUM2 || keyCode==MainCanvas.KEY_UP)
        {
            selected--;
            if(selected<0)
                selected=count-1;
        }
        else if(keyCode==KEY_NUM5 || keyCode==MainCanvas.KEY_SELECT)
        {
            backCan.command(Strs[selected]);
            backCan.setCurrent();
        }
        else if(keyCode==MainCanvas.KEY_LMAIN || keyCode==MainCanvas.KEY_RMAIN)
        {
            backCan.setCurrent();
        }
        
        Graphics g=getGraphics();        
        draw(g);
        flushGraphics((getWidth()-imgBG.getWidth())/2, (getHeight()-imgBG.getHeight()*2)/2, imgBG.getWidth(), imgBG.getHeight()*2);
    }
    
    
}

PM MAIL   Вверх
dive
Дата 2.2.2009, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 25.10.2007
Где: Санкт-Петербург

Репутация: 3
Всего: 5



run нужен, а точнее жизненно необходим.
всмотритесь внимательнее тут http://developers.sun.com/mobility/midp/articles/game/ , там правильно организован основной игровой цикл.
как впрочем и здесь, в разделе GameCanvas http://www3.ntu.edu.sg/home/ehchua/program...vaME_HowTo.html
PM MAIL WWW Skype GTalk Jabber MSN   Вверх
ИванМ
Дата 2.2.2009, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: нет
Всего: 23



Спасибо, не знал, что run обязательно должен присутствовать. Добавил, буду смотреть, появится ли теперь черный экран.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.2895 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.