package atletika; import javax.microedition.lcdui.*; import javax.microedition.lcdui.game.*; public class MyGameCanvas extends GameCanvas implements Runnable{ private Thread thread; private Sprite igrok; private Sprite veter; private Sprite voda; private Map map; private int mass[]={ 1,1,1,1,1,1, 1,0,0,0,0,1, 1,0,0,0,0,1, 1,1,1,1,1,1}; private LayerManager lm; public MyGameCanvas(){ super(true); //обязательный конструктор,который должен вызываться в игровом канвасе try{ map=new Map(6,4,Image.createImage("/60.png"),50,50); igrok=new Sprite(Image.createImage("/Igrok.png"),50,60); veter=new Sprite(Image.createImage("/veter.png")); lm=new LayerManager(); //создаем менеджер слоев lm.append(map); lm.append(igrok); lm.append(veter); }catch(Exception e){} } public void play(Display d) { d.setCurrent(this); thread = new Thread(this); thread.start(); } public void run(){ //вечный цикл while(true){ spritemove(); //проверка нажатий клавиш в реальном времени lm.setViewWindow(igrok.getX()-50,igrok.getY()-50,getWidth(),getHeight()); //установить окно относительно игрока draw(getGraphics()); //прорисовка обьектов try{ thread.sleep(100); //пауза }catch(Exception e){} } } private void spritemove(){ igrok.move(+4, 0); igrok.nextFrame(); } private void draw(Graphics g) { lm.paint(g); //прорисовываем содержимое менеджера слоев flushGraphics(); } }