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