Показать сообщение отдельно
Старый 30.09.2011, 17:20   #1
MidletUser
AnyKey`щик
 
Регистрация: 11.08.2011
Сообщений: 8
Написано одно полезное сообщение
Просьба указать причину отстутствия анимированного спрайта на экране

В чём причина отстутствия анимированного спрайта на экране

Уважаемые J2ME-User'ы.
С учётом того, что Eclipse показывает чистый код,
реализация анимированного спрайта на экране мобильного телефона, после прочтения соответствующего материала в книгах по J2ME, результата не показала. По этой причине прошу объяснить причину в программном коде, блокирующая реализацию данной задачи.

Спрайт содержит 8 кадров, каждый по 23х28. Горизонтальное расположение.

С уважением
MidletUser


Программный код

import java.io.IOException;

import javax.microedition.lcdui.Display;
import javax.microedition.midlet.*;

public class MyMidlet extends MIDlet {
Display display;

MyGameCanvas mygamecanvas;
public MyMidlet() throws IOException{
display = Display.getDisplay(this);
mygamecanvas = new MyGameCanvas();
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub

}

protected void pauseApp() {
// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {
mygamecanvas.setFullScreenMode(true);
display.setCurrent(mygamecanvas);
// TODO Auto-generated method stub

}

}



import java.io.IOException;

import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
public class MyGameCanvas extends GameCanvas implements Runnable {
Graphics g;
boolean working;
Thread thread;
LayerManager layermanager;
Sprite mysprite;
Image image2;



public MyGameCanvas() throws IOException{


super(true);


working = true;

thread = new Thread(this);




thread.start();

}

public void run() {

try {
image2 = Image.createImage("/animated_sprite.png");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

mysprite = new Sprite ( image2, 23, 28 ) ;



mysprite.defineReferencePixel(0, 0);
mysprite.setPosition(10, 10);

layermanager = new LayerManager();
layermanager.append(mysprite);

g = getGraphics();



if(working){
layermanager.paint(g, 0, 0);
mysprite.paint(g);
mysprite.nextFrame();
flushGraphics();
repaint();


try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

// TODO Auto-generated method stub

}

public void paint(Graphics g){
g.setColor(255, 255, 255);
g.fillRect(0, 0, 240, 320);
int [] sequence = {0,1,2,3,4,5,6,7};
mysprite.setFrameSequence(sequence);
mysprite.nextFrame();





}

}

Последний раз редактировалось MidletUser, 30.09.2011 в 19:58.
(Offline)
 
Ответить с цитированием