重装机兵java_Java游戏重装机兵源代码

本文档是Java游戏《重装机兵》的源代码,作者为夏文涛。游戏通过MIDlet实现,包含游戏菜单处理、闪屏、新游戏、继续游戏、游戏介绍、记录显示等功能。主要类MetalMax实现了Runnable和IData接口,用于控制游戏流程。游戏使用MenuList和MetalMaxCanvas类进行交互,并提供了闪屏效果、手机震动等增强体验的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**********************************************************

File name:MetalMaxMedlet.java

Author:夏文涛

Version:Beta1.0

Data:2007/10/16

Description:

游戏的medlet,进行各种进入游戏前的菜单显示处理

Function List:

1.splashScreenPainted(boolean) 进入闪屏界面

2.splashScreenDone() 闪屏界面显示完毕

3.menuListNewGame() 开始新游戏

4.GameCanvasMenu() 返回medlet,游戏暂停

5.menuListContinue() 游戏继续

6.menuListInstructions() 进入显示游戏介绍界面

7.instructionsBack() 游戏介绍显示完毕

8.menuListRecord() 进入显示记录界面

9.RecordBack() 记录界面显示完毕

10.menuListQuit() 退出菜单选择,游戏结束

11.GameCanvasGameOver() 显示游戏结束界面

12.gameOverDone() 游戏结束界面显示完毕

13.flashBacklight() 手机闪屏效果

14.vibrate() 手机震动效果

*********************************************************/

package com.Izual.MetalMax;

import javax.microedition.lcdui.*;

import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException;

public class MetalMax extends MIDlet implements Runnable,IData {

private MenuList menuList;

private MetalMaxCanvas myCanvas;

private boolean initDone = false;

/*

* 游戏记录,DEMO中由于时间问题还未实现

private static final String RS_NAME = "MetalMaxRecord";

*/

public MetalMax() {

}

protected void destroyApp(boolean arg0) {

if (myCanvas != null) {

myCanvas.stop();

}

}

protected void pauseApp() {

Displayable current = Display.getDisplay(this).getCurrent();

if (current == myCanvas) {

myCanvas.stop();

}

}

protected void startApp() throws MIDletStateChangeException {

//获取系统时间

Runtime rt = Runtime.getRuntime();

//获取游戏开始前的内存情况

long diffstart = rt.totalMemory() - rt.freeMemory();

System.out.println("Memory used Start:" + diffstart);

Displayable current = Display.getDisplay(this).getCurrent();

//如果游戏刚启动,则开始闪屏界面

if (current == null) {

Display.getDisplay(this).setCurrent(new SplashScreen(this));

} else {/*否则进入游戏*/

if (current == myCanvas) {

myCanvas.start();

}

Display.getDisplay(this).setCurrent(current);

}

/*游戏后内存变化情况*/

long diffend = rt.totalMemory() - rt.freeMemory();

System.out.println("Memory used End:" + diffend);

System.out.println("Memory used after operation:"

+ (diffend - diffstart));

}

/*进入闪屏界面*/

void splashScreenPainted() {

new Thread(this).start();

}

/*线程运行*/

public void run() {

init();

}

/*同步的初始化方法*/

private synchronized void init() {

if (!initDone) {

SoundEffects.getInstance();

menuList = new MenuList(this);

myCanvas = new MetalMaxCanvas(this);

initDone = true;

}

}

/*闪屏结束,返回到菜单选择*/

void splashScreenDone() {

init();

Display.getDisplay(this).setCurrent(menuList);

}

/*开始新游戏*/

public void menuListNewGame() {

myCanvas.init(START_MAP);

Display.getDisplay(this).setCurrent(myCanvas);

myCanvas.start();

}

/*游戏暂停*/

public void GameCanvasMenu() {

myCanvas.stop();

menuList.setGameActive(true);

Display.getDisplay(this).setCurrent(menuList);

}

/*游戏继续*/

public void menuListContinue() {

Display.getDisplay(this).setCurrent(myCanvas);

myCanvas.start();

}

/*进入游戏介绍界面*/

public void menuListInstructions() {

Display.getDisplay(this).setCurrent(new InstructionScreen(this));

}

/*游戏介绍界面显示完毕*/

public void instructionsBack() {

Display.getDisplay(this).setCurrent(menuList);

}

/*进入记录界面*/

public void menuListRecord() {

Display.getDisplay(this).setCurrent(new RecordScreen(this));

}

/*记录界面显示完毕*/

public void RecordBack() {

Display.getDisplay(this).setCurrent(menuList);

}

/*退出游戏*/

public void menuListQuit() {

quit();

}

public void quit() {

destroyApp(false);

notifyDestroyed();

}

/*游戏结束界面*/

public void GameCanvasGameOver(long time, int record){

myCanvas.stop();

menuList.setGameActive(false);

Display.getDisplay(this).setCurrent(new GameOverScreen(this));

}

/*游戏结束界面显示完毕*/

public void gameOverDone(){

Display.getDisplay(this).setCurrent(menuList);

}

/*手机闪屏效果*/

public void flashBacklight(int millis){

Display.getDisplay(this).flashBacklight(millis);

}

/*手机震动效果*/

public void vibrate(int millis){

Display.getDisplay(this).vibrate(millis);

}

}



更多源码 | 好库简介 | 网站地图 | 帮助中心 | 版权说明

Copyright© 2009-2012 OKBASE.NET All Rights Reserved 好库网 版权所有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值