📄 newgame.java
字号:
import java.io.IOException;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;
public class NewGame extends GameCanvas implements Runnable {
Display dispnew; //再定义个DISPLAY 以便在这个类中显示当前内容
MyCanvas newcanvas;
Image planImage_1,planImage_2,backImage;
Graphics g;
LayerManager layManager;
Sprite plane,bullet,back;
int height=getHeight(),width=getWidth(),drawx=100,drawy=220,x=0,y=0;
protected NewGame(Display dis, MyCanvas canvas) {
// TODO 自动生成构造函数存根
super(true);
dispnew=dis;
newcanvas=canvas;
try {
planImage_1=Image.createImage("/plane.png");
planImage_2=Image.createImage("/bullet.png");
backImage=Image.createImage("/back.png");
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
g=this.getGraphics();
plane=new Sprite(planImage_1,32,32); //给飞机精灵加载上图
bullet=new Sprite(planImage_2,12,12); //给子弹精灵加载上图
back=new Sprite(backImage,240,300);
layManager=new LayerManager();
layManager.append(plane); //添加精灵
layManager.append(bullet);
layManager.append(back);
bullet.setVisible(false);
//plane.setPosition(60,180);
//bullet.setPosition(50,70);
Thread t=new Thread(this);
t.start();
// TODO 自动生成构造函数存根
}
public void keyPressed(){
int keyState=this.getKeyStates();
if((keyState & UP_PRESSED)!=0){
if(drawy<=-15){
drawy=-15;
}else{
drawy-=2;
}
}
if((keyState & DOWN_PRESSED)!=0){
if(drawy>=241){
drawy=241;
}else{
drawy+=2;
}
}
if((keyState & LEFT_PRESSED)!=0){
if(drawx<=16){
drawx=16;
}else{
drawx-=2;
}
}
if((keyState & RIGHT_PRESSED)!=0){
if(drawx>=224){
drawx=224;
}else{
drawx+=2;
}
}
if((keyState & FIRE_PRESSED)!=0){
bullet.setVisible(true);
draw();
}
}
private void draw() {
x=drawx;
y=drawy;
for(int i=0;i<getHeight();i++){
clear();
bullet.setPosition(x,y);
y-=1;
layManager.paint(g,0,0);
flushGraphics();
}
bullet.setVisible(false);
}
private void clear() {
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0,0,0);
// TODO 自动生成方法存根
}
public void run() {
while(true){
clear();
keyPressed();
plane.setPosition(drawx-15,drawy+15);
try {
Thread.sleep(5);
} catch (InterruptedException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
layManager.paint(g,0,0);
flushGraphics();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -