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

📄 play.java

📁 深海大战手机游戏
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/*
 * Created on 2005-9-11
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package shipwar;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.rms.*;

/**
 * @author wanggang
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class Play extends GameCanvas implements Runnable, CommandListener {

	/* (non-Javadoc)
	 * @see java.lang.Runnable#run()
	 */
	private Command exit=new Command("退出",Command.EXIT,5);
	private Command replay=new Command("重玩",Command.EXIT,1);
        private Play play;
	private LayerManager layermanager;
	private TiledLayer background;
	private Sprite shipsprite;
	private Sprite enemyship_die;
        private Sprite explosive;
	private Graphics g;
	private int shipX,shipY;
        private int shipwidth,shipheight;
        private int enemyshipheight;
	private int enemyfire=0;
	private TiledLayer bottomground;
	private Thread thread;
	private boolean gameover;
	private boolean ispause;
	private boolean FIRE=false;
	private int direction;
	private sunken sunken1;
	private sunken sunken2;
	private int firetime=0;
	private Font deffont=Font.getDefaultFont();
	private int type;
	private int score=0;
        private int tmpscore=0;
        private int minrecord;
	private String scorestring;
	private String levelstring;
        private Displayable upinstance;
	private int enemycount=0;
	private int timecount=15;
	private int level=3;
	private int speed=0;
	private int showspeed=150;
	private int showX=0;
        private boolean exist=false;
	public static int movehorizontal=0;
	public static int movevertical=1;
	public static int movediagonal=2;
	private byte [][]backgroundmap={ {1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1},
			{1,1,1,1,1,1,1}
	};
	private Missile[] shipmissile;
	private Missile[] enemymissile;
	private fishobject[] fisharray;
	private byte[][]bottomgroundmap={
		{1,1,1,1,1,1,1}
	};
	private enemyship[] enemyshiparray;
	public Play(Displayable instance){
		super(false);
                play=this;
		this.addCommand(exit);
		this.setCommandListener(this);
                this.upinstance=instance;
                this.level=MainMenu.level;
		ispause=false;
		this.g=this.getGraphics();
		try{
			Image backimage=Image.createImage("/res/densityLayer0.png");
			Image bottomimage=Image.createImage("/res/bottom.png");
                        Image ship=Image.createImage("/res/sub.png");
			Image sunkenimage=Image.createImage("/res/sunkenboat.png");
			Image fish0image=Image.createImage("/res/fishType0.png");
			Image fish1image=Image.createImage("/res/fishType1.png");
			Image fish2image=Image.createImage("/res/fishType2.png");
			Image fish3image=Image.createImage("/res/fishType3.png");
			Image fish4image=Image.createImage("/res/fishType4.png");
			Image fish5image=Image.createImage("/res/fishType5.png");
			Image fish6image=Image.createImage("/res/fishType6.png");
			Image enemyshipimage=Image.createImage("/res/enemysub_f.png");
			Image enemydieimage=Image.createImage("/res/enemysub_die.png");
			Image shipmissileimage=Image.createImage("/res/tinfish3.png");
			Image enemymissileimage=Image.createImage("/res/tinfish2.png");
                        Image explosiveimage=Image.createImage("/res/explosion.png");
                        shipsprite=new Sprite(ship,20,10);
                        enemyship_die=new Sprite(enemydieimage,16,11);
                        explosive=new Sprite(explosiveimage,13,14);
                        fisharray=new fishobject[]{
                                  new fishobject(fish0image,fish0image.getWidth(),fish0image.getHeight(),this.getWidth(),this.getHeight(),movehorizontal),
                                  new fishobject(fish1image,fish1image.getWidth(),fish1image.getHeight(),this.getWidth(),this.getHeight(),movehorizontal),
                                  new fishobject(fish2image,fish2image.getWidth(),fish2image.getHeight(),this.getWidth(),this.getHeight(),movehorizontal),
                                  new fishobject(fish3image,fish3image.getWidth(),fish3image.getHeight(),this.getWidth(),this.getHeight(),movehorizontal),
                                  new fishobject(fish4image,fish4image.getWidth(),fish4image.getHeight(),this.getWidth(),this.getHeight(),movevertical),
                                  new fishobject(fish5image,fish5image.getWidth(),fish5image.getHeight(),this.getWidth(),this.getHeight(),movediagonal),
                                  new fishobject(fish6image,fish6image.getWidth(),fish6image.getHeight(),this.getWidth(),this.getHeight(),movehorizontal)
                      };
                      enemyshiparray=new enemyship[]{
                                     new enemyship(enemyshipimage,this.getWidth(),this.getHeight()),
                                     new enemyship(enemyshipimage,this.getWidth(),this.getHeight()),
                                     new enemyship(enemyshipimage,this.getWidth(),this.getHeight()),
                                     new enemyship(enemyshipimage,this.getWidth(),this.getHeight()),
                                     new enemyship(enemyshipimage,this.getWidth(),this.getHeight())
                      };
                      shipmissile=new Missile[]{
                                  new Missile(shipmissileimage,this.getWidth(),this.getHeight(),10,5),
                                  new Missile(shipmissileimage,this.getWidth(),this.getHeight(),10,5),
                                  new Missile(shipmissileimage,this.getWidth(),this.getHeight(),10,5)
                      };
                      enemymissile=new Missile[]{
                                   new Missile(enemymissileimage,this.getWidth(),this.getHeight(),10,3),
                                   new Missile(enemymissileimage,this.getWidth(),this.getHeight(),10,3),
                                   new Missile(enemymissileimage,this.getWidth(),this.getHeight(),10,3),
                                   new Missile(enemymissileimage,this.getWidth(),this.getHeight(),10,3),
                                   new Missile(enemymissileimage,this.getWidth(),this.getHeight(),10,3)
                      };
                      background=new TiledLayer(7,29,backimage,40,10);
                      for (int i=0;i<29;i++)
                          for(int j=0;j<7;j++){
                              background.setCell(j,i,backgroundmap[i][j]);
                          }
                      bottomground=new TiledLayer(7,1,bottomimage,40,10);
                      for (int i=0;i<1;i++)
                          for(int j=0;j<7;j++){
                              bottomground.setCell(j,i,bottomgroundmap[i][j]);
                          }
                      shipsprite.setFrame(0);
                      enemyship_die.setFrame(0);
                      sunken1=new sunken(sunkenimage,this.getWidth());
                      sunken2=new sunken(sunkenimage,this.getWidth());
                      sunken1.setDrawX((this.getWidth()-sunkenimage.getWidth())/2);
                      shipwidth=ship.getWidth();
                      shipheight=ship.getHeight();
                      enemyshipheight=enemyshipimage.getHeight();
                  }catch(Exception e){}
		sunken2.setDrawX(this.getWidth());
		gameover=false;
		layermanager=new LayerManager();
		shipX=20;
		shipY=this.getHeight()/2;
                System.gc();
		thread=new Thread(this);
		thread.start();
	}
	public void run() {
            // TODO Auto-generated method stub
            while (!gameover) {
                while (!ispause && !gameover) {
                    try {
                        switch (speed) {
                        case 0:
                            Thread.sleep(showspeed);
                            break;
                        case 1:
                            Thread.sleep(showspeed - 10);
                            break;
                        case 2:
                            Thread.sleep(showspeed - 20);
                            break;
                        case 3:
                            Thread.sleep(showspeed - 30);
                            break;
                        case 4:
                            Thread.sleep(showspeed - 40);
                            break;
                        case 5:
                            Thread.sleep(showspeed - 50);
                            break;
                        }
                    } catch (InterruptedException e) {}
                    switch(score){
                    case 500:
                        if(score!=tmpscore){
                            if(level<5)
                                level++;
                            else
                                speed++;
                        }
                        break;
                    case 1000:
                        if(score!=tmpscore){
                            if(level<5)
                                level++;
                            else
                                speed++;
                        }
                        break;
                    case 1500:
                        if(score!=tmpscore){
                            if(speed<5)
                                speed++;
                        }
                        break;

⌨️ 快捷键说明

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