📄 startgamecanvas.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 + -