/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ychenie;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.game.*;
import java.util.*;
import java.io.*;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Image;
public class KubCanvas extends Canvas implement Runnable {
private Display display;
private Sprite sprite;
private boolean sleeping;
private long frameDelay;
private Sprite kubSprite;
private int Xspeed,Yspeed;
private int LEFT_PRESSED;
private int RIGHT_PRESSED;
private int DOWN_PRESSED;
private int UP_PRESSED;
/**
* constructor
*/
public KubCanvas(Display d) {
super();
display=d;
frameDelay=33;
}
public void start() {
display.setCurrent(this);
Xspeed=Yspeed=0;
try {
kubSprite = new Sprite(Image.createImage("/kub.png"));
kubSprite.setPosition(0,0);
} catch (IOException e) {
System.out.println("net sprita");
}
sleeping=false;
Thread t =new Thread();
t.start();
}
public void stop() {
sleeping=true;
}
public void run() {
Graphics g =getGraphics();
while(!sleeping);
update();
draw(g);
try {
Thread.sleep(frameDelay);
} catch (InterruptedException ie) { }
}
private void update() {
int keyState;
keyState = getKeyStates();
if ((keyState & LEFT_PRESSED)!=0)
Xspeed--;
else if ((keyState & RIGHT_PRESSED)!=0)
Xspeed++;
if ((keyState & DOWN_PRESSED)!=0)
Yspeed++;
else if ((keyState & UP_PRESSED)!=0)
Yspeed--;
Xspeed=Math.min(Math.max(Xspeed,-8),8);
Yspeed=Math.min(Math.max(Yspeed,-8),8);
kubSprite.move(Xspeed,Yspeed);
checkBound(kubSprite);
}
private void draw(Graphics g) {
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());
kubSprite.paint(g);
}
private void checkBound(Sprite kubSprite) {
if (sprite.getX()>0) sprite.move(-1,0); //если спрайт не зашел за левую границу экрана, то передвигать влево
if (sprite.getX()<getWidth()-sprite.getWidth()) sprite.move(1,0); //если спрайт не зашел за правую границу экрана, то передвигать вправо, также и для оси игрек, только изменить "getX" на "getY", а "getWidth" на "getHeight" и перемещение на 1 пиксель сделать для координаты игрек.
}
}
В ЧОМ ЗДЕСЬ ОШИБКА?????????????