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

📄 startgamecanvas.java

📁 手机休闲游戏接大象。MIDP2.0游戏
💻 JAVA
字号:
/*
 * 创建日期 2006-3-21
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package catchElephent;
import java.io.IOException;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;
import java.util.Random;
/**
 * @author as
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class StartGameCanvas extends GameCanvas implements Runnable {
Graphics g=this.getGraphics();
SelectCanvas selectCanvas;
Image Igamebackground,Ispriteplay;
Sprite Spriteplayer;
int tollgate=2,score=0;
com com[]=new com[5];
boolean Bexit=false,Btime=false;
private int speed;
boolean Brecord1=true;
long time=0;
/**
	 * @param canvas
	 * @param arg0
	 */
	public StartGameCanvas(SelectCanvas canvas) {
		super(true);
		// TODO 自动生成构造函数存根
		this.selectCanvas=canvas;
		try {
			Igamebackground=Image.createImage("/gamebackground.png");
			Ispriteplay=Image.createImage("/dish.png");
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		Spriteplayer=new Sprite(Ispriteplay,50,30);
		Spriteplayer.setFrame(0);
		Spriteplayer.setPosition(0,250);
		for(int i=0;i<5;i++){
			com[i]=new com(this);
		}
		g.drawImage(Igamebackground,0,0,Graphics.LEFT|Graphics.TOP);
	}
	/* (非 Javadoc)
	 * @see java.lang.Runnable#run()
	 */
	public void start(){
		Thread thread=new Thread(this);
		thread.start();
		Bexit=false;
		Btime=false;
		time=0;
		score=0;
		tollgate=2;
		speed=tollgate*2;

	}
	public void run() {
		// TODO 自动生成方法存根
		while(!Bexit){
			if(score>800){
				Btime=true;
			}else{
				Btime=false;
			}
			if(Btime){
				time++;
				
				
			}
			g.drawImage(Igamebackground,0,0,Graphics.LEFT|Graphics.TOP);
			int key=getKeyStates();
			if((key&FIRE_PRESSED)!=0){
				Bexit=true;
				selectCanvas.elephentMIDP.display.setCurrent(selectCanvas);
			}
			if((key&LEFT_PRESSED)!=0){
				if(Spriteplayer.getX()>=50){
					Spriteplayer.move(-50,0);
				}
			}
			if((key&RIGHT_PRESSED)!=0){
				if(Spriteplayer.getX()<200){
					Spriteplayer.move(+50,0);
				}
			}
			if(score>=0){
				Spriteplayer.paint(g);
				for(int i=0;i<5;i++){
					com[i].spriteIspritecom.move(0,speed);
					com[i].spriteIspritecom.paint(g);
				}
				g.drawString("得分:"+score,0,0,Graphics.LEFT|Graphics.TOP);
				g.drawString("计时:"+time,50,0,Graphics.LEFT|Graphics.TOP);
				flushGraphics();
			}
			try {
				Thread.sleep(50);
			} catch (InterruptedException e) {
				// TODO 自动生成 catch 块
				e.printStackTrace();
			}
		}
	}
	public class com implements Runnable{
		Image Ispritecom;
		Sprite spriteIspritecom;
		int X=0;
		boolean kind=true;
		StartGameCanvas startgmae;
		public com(StartGameCanvas canvas){
			this.startgmae=canvas;
			build();
			Thread thread=new Thread(this);
			thread.start();
		}
		public void build(){
			kind=getkind();
			try {
				if(kind){
					Ispritecom=Image.createImage("/elephents.png");
					spriteIspritecom=new Sprite(Ispritecom,30,50);

				}else{
					Ispritecom=Image.createImage("/rock.png");
					spriteIspritecom=new Sprite(Ispritecom,40,40);
				}
			} catch (IOException e) {
				// TODO 自动生成 catch 块
				e.printStackTrace();
			}
			spriteIspritecom.setPosition(getX(),-40);

		}
		public int getX(){
			return X=((new Random().nextInt()>>>1)%5)*50+10;
		}
		public boolean getkind(){
			if((new Random().nextInt()>>>1)%10<3){
				return false;
			}else{
				return true;
			}
		}
		/* (非 Javadoc)
		 * @see java.lang.Runnable#run()
		 */
		public void run() {
			// TODO 自动生成方法存根
			while(true){
				if(spriteIspritecom.collidesWith(startgmae.Spriteplayer,false)){
					if(score==100||score==200||score==300||score==400||score==500||
							score==600||score==700||score==800||score==900||score==1000||
							score==1100||score==1200||score==1300||score==1400||score==1600){
						tollgate++;
						speed=tollgate*2;
					}
					if(kind){
						startgmae.score+=10;
					}else{
						startgmae.score-=100;
					}
					build();
					spriteIspritecom.setPosition(getX(),-40);
				}
				if(spriteIspritecom.getY()>300){
					build();
					spriteIspritecom.setPosition(getX(),-40);
				}
			}
		}
	}

}

⌨️ 快捷键说明

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