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

📄 ufocanvas.java.bak

📁 UFO(第五课)开发实例j2me游戏开发赛迪教程
💻 BAK
字号:
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;
import java.io.*;

public class UFOCanvas extends GameCanvas implements Runnable{

private Display display;
private boolean sleeping;  
private long frameDelay;  
private Random rand;
private Sprite ufoSprite;
private int ufoXSpeed,ufoYSpeed;

private Sprite[] myweixinSprite=new Sprite[3]; 

private Sprite[] roidSprite=new Sprite[3];

public UFOCanvas(Display d){
	super(true);
	display=d;
	frameDelay=33;
}

public void start(){
	display.setCurrent(this);
	rand=new Random();
	ufoXSpeed=ufoYSpeed=0;
	try{
		ufoSprite=new Sprite(Image.createImage("/Saucer.png"));
		ufoSprite.setPosition(getWidth()-ufoSprite.getWidth()/2,(getHeight()-ufoSprite.getHeight())/2);
		Image img=Image.createImage("/shi.png");
		roidSprite[0]=new Sprite(img,42,35);
		roidSprite[1]=new Sprite(img,42,35);
		roidSprite[2]=new Sprite(img,42,35);
		Image img2=Image.createImage("/2weixin.PNG");
		myweixinSprite[0]=new Sprite(img2,42,35);
		myweixinSprite[1]=new Sprite(img2,42,35);
		myweixinSprite[2]=new Sprite(img2,42,35);
		//myweixinSprite=new Sprite(Image.createImage("/2weixin.PNG"));

	}catch(IOException e){
		System.err.println("Failed loading image");
	}
	sleeping=false;
	Thread t=new Thread(this);
	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=getKeyStates();
	if((keyState & LEFT_PRESSED)!=0)
		ufoXSpeed--;
	if((keyState & RIGHT_PRESSED)!=0)
		ufoXSpeed++;
	if((keyState & UP_PRESSED)!=0)
		ufoYSpeed--;
	else if((keyState & DOWN_PRESSED)!=0)
		ufoYSpeed++;
ufoXSpeed=Math.min(Math.max(ufoXSpeed,-8),8);
ufoYSpeed=Math.min(Math.max(ufoYSpeed,-8),8);

ufoSprite.move(ufoXSpeed,ufoYSpeed);
checkBounds(ufoSprite);

	for(int i=0;i<3;i++){
		roidSprite[i].move(i+0,getHeight()/2);
		checkBounds(roidSprite[i]);
		if(i==1)
			roidSprite[i].prevFrame();
		else
			roidSprite[i].nextFrame();
		if(ufoSprite.collidesWith(roidSprite[i],true)){
			AlertType.ERROR.playSound(display);
			ufoSprite.setPosition((getWidth()-ufoSprite.getWidth())/2,(getHeight()-ufoSprite.getHeight())/2);
			ufoXSpeed=ufoYSpeed=0;
			for(int j=0;j<3;j++)
				roidSprite[j].setPosition(0,0);
			break;
		}
	}
	for(int i=0;i<3;i++){
		myweixinSprite[i].move(getWidth()/2,0+i);
		fengtang(roidSprite[i]);
		if(i==i)
			myweixinSprite[i].prevFrame();
		else
			myweixinSprite[i].nextFrame();
		if(ufoSprite.collidesWith(myweixinSprite[i],true)){
			AlertType.ERROR.playSound(display);
			ufoSprite.setPosition((getWidth()-ufoSprite.getWidth())/2,(getHeight()-ufoSprite.getHeight())/2);
			ufoXSpeed=ufoYSpeed=0;
			for(int j=0;j<3;j++)
				myweixinSprite[j].setPosition(230,0);
			break;
		}
	}
}

private void draw(Graphics g){
	g.setColor(0x0000000);
	g.fillRect(0,0,getWidth(),getHeight());
	ufoSprite.paint(g);
	for(int i=0;i<3;i++)
		myweixinSprite[i].paint(g);
	flushGraphics();
	
	for(int i=0;i<3;i++)
		roidSprite[i].paint(g);
	flushGraphics();
}

private void checkBounds(Sprite sprite){
	if(sprite.getX()<-sprite.getWidth())
		sprite.setPosition(getWidth(),sprite.getY());
    else if(sprite.getX()>getWidth())
		sprite.setPosition(getWidth(),sprite.getY());

	if(sprite.getY()<-sprite.getHeight())
		sprite.setPosition(sprite.getX(),getHeight());
	else if(sprite.getY()>getHeight())
		sprite.setPosition(sprite.getX(),-sprite.getHeight());
}

private void fengtang(Sprite myweixinSprite){
	if(myweixinSprite.getX()<0)
		myweixinSprite.setPosition(-myweixinSprite.getX(),getHeight());
	else if(myweixinSprite.getX()>getWidth())
		myweixinSprite.setPosition(getWidth()-myweixinSprite.getX(),getHeight());

	if(myweixinSprite.getY()<0)
		myweixinSprite.setPosition(getWidth(),-myweixinSprite.getY());
	else if(myweixinSprite.getY()>getHeight())
		myweixinSprite.setPosition(getWidth(),getHeight()-myweixinSprite.getY());
}

}

⌨️ 快捷键说明

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