当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

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接口.
 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(){
 //按照坐标改变重绘画面处理........
}
}
 GameCanvasTest类中完成了游戏骨干部份,包含键盘按键事件处理、坐标改变、画面重绘,当然游戏精灵跟地图后台也在该类中定义,并利用LayerManager举行管理.

以上是普通的游戏架构,当然,在较复杂的游戏计划里面,利用以上架构将会较麻烦,使得程序不清楚.因此在程序计划中可以采取MVC情势来构建游戏引擎,将各部份抽象出来差别的层(辨别为UI显示、线程掌握以及输入监控等调度、精灵等游戏具体模子)去完成各自的功效,从而提高软件的可读性跟可保护性.


  以上是“J2ME手机游戏引擎程序架构[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • j2me创意-Wap浏览器的源代码
  • J2ME中读取Unicode和UTF-8编码文件
  • J2ME中的底子碰撞检测算法浅析
  • <b>关于j2me game双缓冲实现根究</b>
  • J2ME游戏开辟学习之用setClip分割图片
  • 在J2ME/MIDP中实现图象旋转
  • 初学j2me必读 网友学习笔记
  • 操纵J2ME程序测试MIDlet的生命周期
  • J2ME中操纵缓存将屏幕内容存储为Image
  • 操纵J2ME技术开辟RPG游戏之按键处理机制
  • J2ME中setClip办法操纵详解
  • 在J2ME手机程序开辟中操纵颜色
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .