📄 play.java
字号:
for (int i = 0; i < level; i++) {
if (enemyshiparray[i].getvisible() == true) {
if (shipsprite.collidesWith(enemyshiparray[i], true)) {
enemyshiparray[i].setVisible(false);
enemyship_die.setPosition(enemyshiparray[i].
getdrawX(), enemyshiparray[i].getdrawY());
enemyship_die.setVisible(true);
explosive.setPosition(shipX,shipY);
explosive.setFrame(3);
explosive.setVisible(true);
this.flushGraphics();
gameover = true;
}
}
}
for (int i = 0; i < 3; i++)
for (int j = 0; j < level; j++) {
if (shipmissile[i].getvisible() &&
enemyshiparray[j].getvisible()) {
if (shipmissile[i].collidesWith(enemyshiparray[
j], true)) {
enemyshiparray[j].setVisible(false);
shipmissile[i].setVisible(false);
shipmissile[i].setvisible(false);
enemyship_die.setPosition(enemyshiparray[j].
getdrawX(),
enemyshiparray[j].getdrawY());
enemyship_die.setVisible(true);
score = score + 100;
}
}
}
for (int i = 0; i < level; i++) {
if (enemymissile[i].getvisible())
if (enemymissile[i].collidesWith(shipsprite, true)) {
explosive.setPosition(shipX,shipY);
explosive.setFrame(3);
explosive.setVisible(true);
explosive.paint(g);
this.flushGraphics();
gameover = true;
}
}
if (FIRE == true && firetime == 0) {
for (int i = 0; i < 3; i++) {
if (shipmissile[i].getvisible() == false) {
shipmissile[i].setvisible(true);
shipmissile[i].setVisible(true);
shipmissile[i].setdrawX(shipX + shipwidth);
shipmissile[i].setdrawY(shipY +
shipheight/ 2);
firetime = 1;
break;
}
}
}
FIRE = false;
if (firetime != 0) {
firetime++;
if (firetime > 5)
firetime = 0;
}
for (int i = 0; i < 3; i++) {
if (shipmissile[i].getvisible()) {
shipmissile[i].moveshipMis();
shipmissile[i].setFrame(0);
shipmissile[i].setPosition(shipmissile[i].getdrawX(),
shipmissile[i].getdrawY());
shipmissile[i].paint(g);
}
}
if (gameover) {
String string = "Game Over!";
int stringX = (this.getWidth() -deffont.stringWidth(string)) / 2;
int stringY = (this.getHeight() - deffont.getHeight()) /2;
g.setColor(0x00BBBBBB);
g.fillRoundRect(stringX - 2, stringY + 2,deffont.stringWidth(string) + 9,deffont.getHeight() + 2, 5, 5);
g.setColor(0x00000000);
g.fillRoundRect(stringX - 6, stringY - 2,deffont.stringWidth(string) + 11,deffont.getHeight() + 4, 5, 5);
g.setColor(0x00FFFFFF);
g.fillRoundRect(stringX - 4, stringY,deffont.stringWidth(string) + 7,deffont.getHeight(), 5, 5);
g.setColor(0x00000000);
g.drawString(string, stringX, stringY,Graphics.LEFT | Graphics.TOP);
this.flushGraphics();
try {
byte[] rec = null;
StringDeal stringdeal = new StringDeal();
rec = MainMenu.rs.getRecord(searchRecord());
stringdeal = StringDeal.deserialize(rec);
minrecord = Integer.parseInt(stringdeal.getcount());
} catch (Exception e) {
System.out.println("提取记录error");
}
if (searchRecord() == -2&&score!=0) {
try {
Thread.sleep(1500);
} catch (Exception e) {
System.out.println("thread pause error");
}
System.out.println("记录为空");
AddName addname = new AddName(score, upinstance,
exist);
Display.getDisplay(shipwarMIDlet.shipwarmidlet).
setCurrent(addname);
} else if (exist == false&&score!=0) {
try {
Thread.sleep(1500);
} catch (Exception e) {
System.out.println("thread pause error");
}
AddName addname = new AddName(score, upinstance,
exist);
Display.getDisplay(shipwarMIDlet.shipwarmidlet).
setCurrent(addname);
} else if (exist == true&&score!=0) {
if (minrecord < score) {
try {
Thread.sleep(1500);
} catch (Exception e) {
System.out.println("thread pause error");
}
AddName addname = new AddName(searchRecord(),score, upinstance, exist);
Display.getDisplay(shipwarMIDlet.shipwarmidlet).setCurrent(addname);
}else {
this.addCommand(replay);
}
}else if(score==0){
this.addCommand(replay);
}
}
enemyship_die.paint(g);
explosive.paint(g);
scorestring = "score:" + String.valueOf(score);
levelstring = "level:" + String.valueOf(level + speed);
g.drawString(scorestring, 0, 2,Graphics.TOP | Graphics.LEFT);
g.drawString(levelstring,this.getWidth()-deffont.stringWidth(levelstring), 2,Graphics.TOP | Graphics.LEFT);
this.flushGraphics();
}
}
}
/* (non-Javadoc)
* @see javax.microedition.lcdui.CommandListener#commandAction(javax.microedition.lcdui.Command, javax.microedition.lcdui.Displayable)
*/
public void commandAction(Command arg0, Displayable arg1) {
// TODO Auto-generated method stub
if(arg0==exit){
gameover=true;
play=null;
Display.getDisplay(shipwarMIDlet.shipwarmidlet).setCurrent(upinstance);
}
if(arg0==replay){
System.gc();
play=null;
play=new Play(upinstance);
Display.getDisplay(shipwarMIDlet.shipwarmidlet).setCurrent(play);
}
}
public void getkeypress(){
int keystate=this.getKeyStates();
if((keystate&UP_PRESSED)!=0){
shipY=shipY-5;
}
else if((keystate&DOWN_PRESSED)!=0){
shipY=shipY+5;
}
else if((keystate&RIGHT_PRESSED)!=0){
shipX=shipX+5;
}
else if((keystate&LEFT_PRESSED)!=0){
shipX=shipX-5;
}
else if((keystate&FIRE_PRESSED)!=0){
FIRE=true;
}
}
public int searchRecord(){
int tmp=0;
int[] countorder=new int[5];
int[] idArray=new int[5];
NameComparator namecom=new NameComparator();
RecordEnumeration re=null;
for(int i=0;i<5;i++){
idArray[i]=-1;
countorder[i]=-1;
}
try{
re = MainMenu.rs.enumerateRecords(null, namecom, true);
StringDeal stringdeal=new StringDeal();
int id;
byte[] rec=null;
if(re.numRecords()>0){
int j=0;
while(re.hasNextElement()){
id=re.nextRecordId();
idArray[j]=id;
rec=MainMenu.rs.getRecord(id);
stringdeal=StringDeal.deserialize(rec);
countorder[j]=Integer.parseInt(stringdeal.getcount());
j++;
}
for(int x=0;x<4;x++){
for(int y=0;y<5-x-1;y++){
if(countorder[y]<countorder[y+1]){
tmp=countorder[y];
countorder[y]=countorder[y+1];
countorder[y+1]=tmp;
tmp=idArray[y];
idArray[y]=idArray[y+1];
idArray[y+1]=tmp;
}
}
}
for(int i=0;i<5;i++){
if(countorder[i]!=-1)
tmp=idArray[i];
}
if(countorder[4]!=-1)
exist=true;
else
exist=false;
}else{
return -2;
}
}catch(Exception e){
System.out.println("read rs error");
}
return tmp;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -