Я думаю, что у меня опять та-же проблема... но поскольку ни IDE, ни в процессе выполнения никакой ошибки не выскакивает, и по моей примитивной логике все нормально, прошу совета...
есть у меня три файла:
main.java

import java.io.IOException;
import java.util.*;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Main extends MIDlet implements CommandListener
{
public Main midlet = this;
public static Display MD = null;
public static Timer timer = null;
public static GameC GC = null;
public static Graphics MG = null;
public static MainLoop ML = null;
public static Image TestTile = null;
public static Spr SprC = null;
int i,j;
public void startApp()
{
GC = new GameC();
GC.CreateScreen();
MG = GC.CreateScreen();
Display.getDisplay(this).setCurrent(GC);
GC.addCommand(new Command("Exit", Command.EXIT, 1));
GC.setCommandListener(this);
TimerTask TT = new MainLoop();
timer = new Timer();
timer.schedule( TT, 0, 500 );
try {
TestTile = Image.createImage("/Tank1red.png");
} catch (IOException ex) {
ex.printStackTrace();
}
SprC = new Spr(TestTile,20,20);
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
public void commandAction(Command command, Displayable displayable) {
if (command.getCommandType() == Command.EXIT) {
destroyApp(true);
notifyDestroyed();
}
}
}
class MainLoop extends TimerTask {
public static GameC GC = null;
public static Display MD = null;
public static Graphics MG = null;
public static Spr SprC = null;
public static Image TestTile = null;
int i=0,j=0;
public static Main midlet = null;
public void run() {
//System.out.println(3);
//midlet.SprC.paintSprite(MG);
//midlet.GC.paint(MG);
//midlet.SprC.paint(MG);
midlet.GC.PAll();
}
}
Spr.java
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.*;
public class Spr extends Sprite
{
public static GameC GC = null;
public static Spr SprC = null;
public static Image TestTile = null;
public static Graphics MG = null;
public Spr(Image image, int x,int y)
{
super(image, x, y);
}
public void paintSprite(Graphics MG)
{
paint(MG);
}
}
GameC.java
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.Graphics;
public class GameC extends GameCanvas {
static int i=0,j=0;
public static GameC GC = null;
public static Display MD = null;
public static Graphics MG = null;
public static Main midlet = null;
public GameC() {
super(true);
}
public Graphics CreateScreen() {
return getGraphics();
}
public static void PAll() {
midlet.MG.setColor(128,128,128);
if (i>100) {i=0;j=+10;}
if (j>100) {i=0;j=0;}
i+=10;
midlet.MG.fillRect(i,j,10,10);
midlet.GC.flushGraphics();
}
}
если все это дело откомпилить и запустить, то всё работает... на экране рисуюццо квадратики... гут... но как нарисовать спрайт? раскомментирую "midlet.SprC.paintSprite(MG);" или "midlet.SprC.paint(MG);" то сразу все виснет... опять видать чето "нестатичное" вызываеццо... и что я проследить не могу... вроде все статичное... плиз хелп!
