📄 collidetest1.java~1~
字号:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
public class CollideTest1 extends MIDlet{
Display display;
MyCanvas myCanvas;
public CollideTest1(){
display = Display.getDisplay(this);
myCanvas = new MyCanvas();
}
public void startApp(){
display.setCurrent(myCanvas);
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
class MyCanvas extends Canvas implements CommandListener{
Command exitCmd;
Image offScreen;
Image mySpriteImage;
Image enemySpriteImage;
Sprite mySprite;
Sprite[] enemySprite = new Sprite[3];
public MyCanvas(){
if(!isDoubleBuffered()){
offScreen = Image.createImage(getWidth(), getHeight());
}
try{
mySpriteImage = Image.createImage("/mysprite.png");
enemySpriteImage = Image.createImage("/enemysprite.png");
}
catch(Exception ex){}
mySprite = new Sprite(this, mySpriteImage);
for(int i=0;i<enemySprite.length;i++)
enemySprite[i] = new Sprite(this, enemySpriteImage);
exitCmd = new Command("瞒秨", Command.EXIT, 1);
addCommand(exitCmd);
setCommandListener(this);
}
public void paint(Graphics g){
Graphics old = g;
boolean collide = false;
if(offScreen != null){
g = offScreen.getGraphics();
}
g.setColor(0xFFFFFF);
g.fillRect(0, 0, getWidth(), getHeight());
mySprite.draw(g);
for(int i=0;i<enemySprite.length;i++)
enemySprite[i].draw(g);
for(int i=0;i<enemySprite.length;i++){
collide = mySprite.isCollided(enemySprite[i]);
if(collide) break;
}
if(collide){
g.setColor(0);
g.drawString("祇ネ窱疾",
getWidth()/2,
getHeight()/2,
Graphics.LEFT|Graphics.TOP);
}
if(g != old){
old.drawImage(offScreen, 0, 0, Graphics.LEFT|Graphics.TOP);
}
}
public void keyPressed(int keyCode){
int gameAction = getGameAction(keyCode);
switch(gameAction){
case Canvas.UP:
mySprite.y-=2;
repaint();
break;
case Canvas.DOWN:
mySprite.y+=2;
repaint();
break;
case Canvas.LEFT:
mySprite.x-=2;
repaint();
break;
case Canvas.RIGHT:
mySprite.x+=2;
repaint();
break;
}
}
public void keyReleased(int keyCode){
}
public void keyRepeated(int keyCode){
}
public void commandAction(Command c, Displayable d){
if(c == exitCmd){
destroyApp(true);
notifyDestroyed();
}
}
}
class Sprite{
int x, y;
int width, height;
Image image;
MyCanvas canvas;
public Sprite(MyCanvas canvas,Image image){
this.canvas = canvas;
x = Math.abs(new Random().nextInt())%canvas.getWidth();
y = Math.abs(new Random().nextInt())%canvas.getHeight();
this.image = image;
width = image.getWidth();
height = image.getHeight();
System.out.println(""+x+","+y);
}
public boolean isCollided(Sprite otherSprite){
boolean result = false;
if((((x+width)>=otherSprite.x && x<=otherSprite.x) ||
(x<=(otherSprite.x+otherSprite.width)&& x>=otherSprite.x))&&
(((y+height)>=otherSprite.y&&(y<=otherSprite.y)) ||
(y<=(otherSprite.y+otherSprite.height) && y>=otherSprite.y))){
result = true;
}
return result;
}
public void draw(Graphics g){
g.drawImage(image, x, y, Graphics.LEFT|Graphics.TOP);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -