⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bombcanvas.java

📁 javaME useful code with the J2ME helpful learning cla
💻 JAVA
字号:
import java.io.InputStream;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.game.TiledLayer;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
public class BombCanvas extends GameCanvas implements Runnable {
	private Image bkgImage,planeImage_1,planeImage_2,bombImage;
	private Graphics g;
	private LayerManager layManager;
	private int screenWidth=0,screenHeight=0,drawx=0,drawy=0,dx=0;
	private Sprite plane_1,plane_2,bomb;
	private TiledLayer background;
	private PlayMusic pm;
	private byte[][] backgroundMap = { {1,2,3,4,5,6}, 
			{7,8,9,10,11,12},
			{13,14,15,16,17,18}, 
			{19,20,21,22,23,24}, 
			{25,26,27,28,29,30},
			{31,32,33,34,35,36},
			{1,2,3,4,5,6}, 
			{7,8,9,10,11,12},
			{13,14,15,16,17,18}, 
			{19,20,21,22,23,24}, 
			{25,26,27,28,29,30},
			{31,32,33,34,35,36}};
	
	protected BombCanvas() {
		super(true);
				screenHeight = getHeight();
		screenWidth = getWidth();
		try {
			//图片大小为360*360,为了简单没有设置自己的地图格式
			bkgImage = Image.createImage("/game/backg.png");
			//图片大小为80*64
			planeImage_1 = Image.createImage("/game/plane1.png");
			//图片大小为144*144
			planeImage_2 = Image.createImage("/game/plane2.png");
			bombImage = Image.createImage("/game/bomb.png");
} catch (Exception e) {
}
		int i,j;
		g = this.getGraphics();
		background = new TiledLayer(6,12,bkgImage,60,60);
		for(i=0;i<12;i++){
			for(j=0;j<6;j++){
				background.setCell(j,i,backgroundMap[i][j]);
			}
		}
		plane_1 = new Sprite(planeImage_1,80,64);
		plane_2 = new Sprite(planeImage_2,144,144);
		bomb = new Sprite(bombImage,256,128);
		layManager = new LayerManager();
		layManager.append(plane_1);
		layManager.append(plane_2);
		layManager.append(bomb);
		bomb.setVisible(false);
		layManager.append(background);
		plane_1.setPosition(60,180);
		plane_1.setPosition(80,10);
		layManager.paint(g,0,0);
		flushGraphics();
		Thread t = new Thread(this);
		t.start();
		}
	public void keyPressed(){
		int x,y;
		int keyState = this.getKeyStates();
		if ((keyState & UP_PRESSED) != 0) {
			if (drawy - 2 > screenHeight){
				drawy= drawy - 2;	
				dx = dx +1;
			}
			else{
				drawy = 720-screenHeight;
				dx = dx +1;
			}
	}
		if ((keyState & DOWN_PRESSED) != 0) {
			if (drawy + 2 < 720 - screenHeight){
				drawy = drawy + 2;
				dx = dx - 1;
			}
			else{
				drawy = screenHeight;
				dx = dx -1 ;
			}
	}
		if ((keyState & RIGHT_PRESSED) != 0) {
			if (drawx + 2 < screenWidth){
				drawx = drawx + 2;
			}
			else{
				drawx = 0;
				}
		}
		if ((keyState & LEFT_PRESSED) != 0) {
			if (drawx - 2 > 0){
				drawx = drawx - 2;
			}
			else{
				drawx = screenWidth;
				}
}
	}
	public void run(){
		Thread d = new Thread(){
		public void run(){
			pm = new PlayMusic();
			if(pm!=null)
				pm.playwavfile();
		}
		};
	d.start();
		try {
			d.sleep(5000);
		} catch (InterruptedException ie) {
		}
		
		while(true){
			//d.start();
			keyPressed();
			draw();
			try {
				Thread.sleep(50);
			} catch (InterruptedException ie) {
			}
		}
	}
	public void draw(){
		layManager.setViewWindow(drawx,drawy,screenWidth,screenHeight);
		plane_2.setPosition(drawx+60,drawy+dx);
		plane_1.setPosition(drawx+80,drawy+180);
		if(plane_1.collidesWith(plane_2,true)){
			bomb.setPosition(drawx+10,drawy+180);
			bomb.setVisible(true);
			plane_1.setVisible(false);
			plane_2.setVisible(false);
			pm.playbomb();
		}
		layManager.paint(g,0,0);
		flushGraphics();
	}
}
class PlayMusic {
	PlayMusic(){
}
	public void playwavfile() {
		try {
			// 从Jar包中读取背景音乐的wav文件
			InputStream in = getClass().getResourceAsStream(
					"/GamebackgroundSound.wav");
			//指定文件类型
			Player p = Manager.createPlayer(in, "audio/x-wav");
while(true){
				p.start();
}
		} catch (Exception e) {
			Alert alr = new Alert("错误", "不能够播放 WAV 文件!", null,
					AlertType.ERROR);
			alr.setTimeout(Alert.FOREVER);
		}
	}
	public void playbomb(){
		try {
			// 从Jar包中读取爆炸声音的wav文件
			InputStream in = getClass().getResourceAsStream(
					"/EXPLODE.WAV");
			//指定文件类型
			Player p;			
			p = Manager.createPlayer(in, "audio/x-wav");
			p.start();	
		} catch (Exception e) {
			Alert alr = new Alert("错误", "不能够播放 WAV 文件!", null,
					AlertType.ERROR);
			alr.setTimeout(Alert.FOREVER);
		}
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -