forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Программирование (http://forum.boolean.name/forumdisplay.php?f=54)
-   -   Продолжение вопроса причины неотображения анимированного спрайта? (http://forum.boolean.name/showthread.php?t=15573)

MidletUser 01.10.2011 03:05

Продолжение вопроса причины неотображения анимированного спрайта?
 
Продолжение вопроса причины неотображения анимированного спрайта?

Разобравшись с концептом отображения анимированных спрайтов по версии Sun программистов и предприняв попытку реализации анимированного спрайта, получил на экран только первый кадр анимированного спрайта в виде статичной неанимированной картинки, вместо ожидаемого анимированного изображения. С учётом того, что программный код чист и Eclipse ошибок не выдаёт я прихожу в недоумение по случаю причины отсутствия ожидаемого результата согласно плану реализации данной задачи. И ставлю вопрос в чём же дело?

С уважением
MidletUser

Программный код реализации задачи
Спрайт из 8 кадров, горизонтальное расположение, размером 184/8 х 28 для каждого кадра, соответственно.


Цитата:

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.*;
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);

try{

image2 = Image.createImage("/sprite1.png");
mysprite = new Sprite( image2, 184/8, 28 );
mysprite.defineReferencePixel(0, 0);
mysprite.setRefPixelPosition(0, 0);
layermanager = new LayerManager();
working = true;

thread = new Thread(this);

thread.start();






}
catch(Exception e){



System.out.println("Cannot read PNG Graphic");
}



}

public void run() {


g = getGraphics();



while(working){
int [] sequence = {0,1,2,3,4,5,6,7};
mysprite.setFrameSequence(sequence);
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,getWidth(), getHeight());

// Draw the Sprite
layermanager.append(mysprite);
layermanager.paint(g, 0, 0);






}

}

Reks888 01.10.2011 18:40

Ответ: Продолжение вопроса причины неотображения анимированного спрайта?
 
Образцовый пост, все отлично описано, молодцом
Ещё бы кто на булке писал на JAVA Micro Edition так даже и ответ бы нашелся


Часовой пояс GMT +4, время: 12:31.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot