J2ME手机游戏引擎程序架构[Java编程]
本文“J2ME手机游戏引擎程序架构[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在游戏开辟以及任何软件的计划都需求成立一个安定的引擎构造体,来作为软件计划的基本架构,是软件体系构造的核心支持框架,一切功效的实现以及扩大都在这个底子架构之上来完成.一个游戏的计划触及到游戏掌握、角色、游戏场景、道具、游戏声效以及游戏历程事件监听机制等元素,因此成立杰出的游戏引擎能对以上各元素举行有效的掌握.本文介绍在J2ME游戏计划中游戏引擎的基本程序架构.
游戏引擎可以成立差别的构造体来实现,但是任何游戏的计划都离不开通过计划一个主循环loop来反复掌握整个游戏历程,当然整个游戏的核心构造(后台变幻掌握、精灵坐标改变、行动帧画面改变等)都包含在该循环中.在J2ME游戏计划中,程序架构普通需求成立两个核心类,便是MIDlet跟Displayable两类.
1、此中MIDlet是J2ME的主类,任何程序主类都需求担当MIDlet来掌握整个游戏的生命周期,需求覆盖MIDlet中的三个周期办法startApp、pauseApp跟destoryApp,辨别为履行开始、暂停、完毕等行动的操作体.
public classGameTest extends MIDlet implements CommandListener{
/**
* 游戏引擎介绍
*/
private Command exitCommand;
private GameCanvasTest gameCanvas;
public GameTest () {
exitCommand=new Command(" exit?,command.exit,1);
GameCanvasTest gameCanvas=new GameCanvasTest (this);
sfcan.addCommand(exitCommand);
sfcan.setCommandListener(this);
Display.getDisplay(this).setCurrent(gameCanvas);
// TODO 自动生成构造函数存根
}
protected void startApp() throws MIDletStateChangeException {
// TODO 自动生成办法存根
//gameCanvas.thread.start();
}
protected void pauseApp() {
// TODO 自动生成办法存根
try{
gameCanvas.thread.wait();
}catch(Exception e){}
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO 自动生成办法存根
gameCanvas=null;
}
public void commandAction(Command c,Displayable d){
if(c==exitCommand){
notifyDestroyed();
}
}
//实现游戏历程界面跟差别操作改变的调度
public void changeTale(int taleIndex)
{
具体代码实现.......
Display.getDisplay(this).setCurrent(....);
}
}
GameTest类担当了MIDlet类,实现游戏生命周期的掌握,并且也仅仅对游戏生命周期的掌握跟游戏历程中的UI调度工作,而把具体的游戏核心模块放到GameCanvasTest类中去实现.
2、Displayable是游戏的显示效果核心,在J2ME游戏计划中利用GameCanvas类完成游戏画布工作,计划类担当GameCanvas来实现游戏核心模块,普通将游戏主循环安排于该类中实现整个游戏的掌握,因此在担当GameCanvas的同时还需求实现循环Runnable接口.
GameCanvasTest类中完成了游戏骨干部份,包含键盘按键事件处理、坐标改变、画面重绘,当然游戏精灵跟地图后台也在该类中定义,并利用LayerManager举行管理.
public class GameCanvasTest extends GameCanvas implements Runnable {
//声明变量.......
public GameCanvasTest(MIDlet midlet)
{
super(true);
//初始化变量.......
}
public void run(){
keyPressed(getKeyStates());
spritePixel();
drawCanvas();
//其他办法以及处理.......
}
protected void keyPressed(int keyCode){
//按键处理.......
}
public void spritePixel(){
//精灵以及地图坐标变幻掌握......
}
public void drawCanvas(){
//按照坐标改变重绘画面处理........
}
}
以上是普通的游戏架构,当然,在较复杂的游戏计划里面,利用以上架构将会较麻烦,使得程序不清楚.因此在程序计划中可以采取MVC情势来构建游戏引擎,将各部份抽象出来差别的层(辨别为UI显示、线程掌握以及输入监控等调度、精灵等游戏具体模子)去完成各自的功效,从而提高软件的可读性跟可保护性.
以上是“J2ME手机游戏引擎程序架构[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |