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

📄 dsgameapplication.java

📁 实现了一个射击类的手机游戏
💻 JAVA
字号:
/*
 *DSGameApplication.java用于游戏的总实现
 * 基于MVC技术
 * 釆用了模型 显示 控制分开
 */
 
import javax.microedition.lcdui.*;
import java.util.*;

/**
 * 游戏的描绘与操作所用的类
 *
 * 
 */
class DSGameApplication extends Canvas implements Runnable, CommandListener {
	
	/** Start指令变量 */
	private Command				ds_StartCmd		= new Command("开始游戏", Command.SCREEN, 5);
	/** Exit指令变量 */
	private Command				ds_ExitCmd			= new Command("退出游戏", Command.SCREEN, 1);
	/** Pause指令变量 */
	private Command				ds_PauseCmd		= new Command("停止游戏", Command.SCREEN, 5);
	/** Resume指令变量 */
	private Command				ds_ResumeCmd		= new Command("返回游戏", Command.SCREEN, 5);
	
	//用于help显示帮助
	private Command             ds_HelpCmd       = new Command("显示帮助",Command.SCREEN,5);
	
	//显示版权信息
	private Command             ds_AboutCmd = new Command("关于游戏",Command.SCREEN,5);
	
	//用于保存屏幕的宽度
	private int ds_ScreenWidth;
	
	//用于保存屏幕的产高度
	private int ds_ScreenHeight;
	
	// 储存默认字体的变量 
	private Font				ds_Font			= Font.getDefaultFont();

	//以下是一些常量用于游戏的运行状态的标识
	
	//用于游戏的状态标识
	private int ds_GameState ;
	
	private DSPlayer ds_Player ;
	private DSEnemy ds_Enemy ;
	private DSPlayerBullet ds_PBullet ;
	private DSEnemyBullet ds_EBullet ;
	
	//为游戏的开始  
    private static final short DSGAMESTART = 1 ;
    
    //用于游戏的暂停
    private static final short DSGAMEPAUSE = 2 ;
    
    //用于游戏的恢复
    private static final short DSGAMERESUME = 3 ;
	
    //用于游戏的退出
    private static final short DSGAMEEXIT = 4 ;
    
    //用于游戏的帮助
    private static final short DSGAMEHELP = 5 ;
    
    //关于开发者与游戏本身
    private static final short DSGAMEABOUT = 6 ;
    
	//用于构造函数
	DSGameApplication( )
	{
		ds_ScreenWidth = getWidth();
		ds_ScreenHeight = getHeight();

        //将命令加入主菜单
		addCommand( ds_StartCmd );
		addCommand( ds_PauseCmd );
		addCommand( ds_HelpCmd );
		addCommand( ds_AboutCmd );
		addCommand( ds_ExitCmd );
		
		setCommandListener(this);
	}
	
	/** 指定的事件发生时被调用出来的方法 */
	public void commandAction(Command c, Displayable s) {
	 
	 //当选取了开始游戏
	 if(c == ds_StartCmd )
	  DS_GameInit();
	  
	  //当选取了帮助页面 
	 else if( c == ds_HelpCmd )
	  DS_GameHelp();
	  
	  //当按下中止
	 else if( c == ds_PauseCmd)
	  DS_GamePause();
	  
	  //当按下回复
	 else if(c == ds_ResumeCmd )
	  DS_GameResume();

     //当按下关于作者
	 else if(c == ds_AboutCmd )
	  DS_GameAbout();
	  
	  //当按下退出
	 else if(c== ds_ExitCmd )
	  DS_ExitCmd();  
	}
	
  //------------------------------------
  //用于游戏的初始化工作
  // 
  //
  //------------------------------------
  public void DS_GameInit()
  {
  	ds_GameState = DSGAMESTART;
  	repaint();
  }
  
  //------------------------------------
  //显示游戏的帮助页面
  // 
  //
  //------------------------------------
  public void DS_GameHelp()
  {
  	ds_GameState = DSGAMEHELP;
  	repaint();
  }
  
  //------------------------------------
  //暂停游戏
  // 
  //
  //------------------------------------
  public void DS_GamePause()
  {
  	ds_GameState = DSGAMEPAUSE;
  	repaint();
  }
  
  //------------------------------------
  //从暂停中恢复过来
  // 
  //
  //------------------------------------
  public void DS_GameResume()
  {
  	ds_GameState = DSGAMERESUME;
  	repaint();
  }
  
  //------------------------------------
  //关于开发者
  // 
  //
  //------------------------------------
  public void DS_GameAbout()
  {
  	ds_GameState = DSGAMEABOUT;
  	repaint();
  }
  
  //------------------------------------
  //退出游戏
  // 
  //
  //------------------------------------
  public void DS_ExitCmd()
  {
  	ds_GameState = DSGAMEEXIT;
  	repaint();
  }
  
  //------------------------------------
  //用于游戏的系统调度
  // 
  //
  //------------------------------------
  public void run()
  {
  	
  }
  
  //------------------------------------
  //
  // 按键按下事件发生时被调用出来的方法
  //
  //------------------------------------

  protected synchronized void keyPressed(int keyCode) 
  {
		if( ds_GameState != DSGAMESTART )
		 {
		//非游戏中,或在游戏中暂停时为return
			return;
		}

		//为清除按键时不处理
		if(keyCode == 0) return;	//for KDDI

		int ds_GameCode = getGameAction(keyCode);
		
		switch(ds_GameCode) {
			case LEFT:	//按下向左按键时
				ds_GameState = DSGAMEHELP ;
				repaint();
			break;

			case RIGHT:	//按下向右按键时
				
			break;

			case FIRE:	//按下Fire按键时
			case UP:	//按下向上按键时
				
			break;
		}
	}

  //------------------------------------------------------
  //当重复按下时
  //
  //
  //------------------------------------------------------
	protected void keyRepeated(int keyCode) {
		keyPressed(keyCode);
	}

  //------------------------------------
  //用于游戏的显示 
  // 
  //
  //------------------------------------
  public void paint(Graphics g)
  {
    	g.setColor(0x00000000);
		g.fillRect(0, 0, ds_ScreenWidth, ds_ScreenHeight);
		g.setColor(0x00FFFFFF);
		g.setFont(ds_Font);
		switch( ds_GameState )
		{
			case DSGAMESTART:
			 g.drawString("游戏运行中", 20, 20, Graphics.TOP|Graphics.LEFT);
			 break;
		    case DSGAMEPAUSE:
		    
		    try{
		      Image ds_Image  = Image.createImage("/title.png");
		       g.drawImage(ds_Image, 30, 10, Graphics.TOP|Graphics.LEFT);
             }catch(Exception e)
             {}
            
			 g.drawString("游戏暂停中", 20, 20, Graphics.TOP|Graphics.LEFT);
			 break;
			case DSGAMEHELP:
			 g.drawString("游戏帮助中", 20, 20, Graphics.TOP|Graphics.LEFT);
			 break;
			case DSGAMEABOUT:
			 g.drawString("关于游戏", 20, 20, Graphics.TOP|Graphics.LEFT);
			 break;
			case DSGAMEEXIT:
			 g.drawString("游戏退出", 20, 20, Graphics.TOP|Graphics.LEFT);
			 break;
			 
		}
  }
}

⌨️ 快捷键说明

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