本文向大家简单介绍一下J2ME手机游戏引擎程序架构,在游戏开发以及任何软件的设计都需要建立一个稳定的引擎结构体,来作为软件设计的基本架构,是软件体系结构的核心支撑框架。

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的垣曲网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
J2ME手机游戏引擎程序架构
在游戏开发以及任何软件的设计都需要建立一个稳定的引擎结构体,来作为软件设计的基本架构,是软件体系结构的核心支撑框架,一切功能的实现以及扩展都在这个基础架构之上来完成。一个游戏的设计涉及到游戏控制、角色、游戏场景、道具、游戏声效以及游戏过程事件监听机制等元素,因此建立良好的游戏引擎能对以上各元素进行有效的控制。本文介绍在J2ME游戏设计中游戏引擎的基本程序架构。
游戏引擎可以建立不同的结构体来实现,但是任何游戏的设计都离不开通过设计一个主循环loop来重复控制整个游戏过程,当然整个游戏的核心结构(背景幻化控制、精灵坐标变化、动作帧画面变化等)都包含在该循环中。在J2ME游戏设计中,程序架构一般需要建立两个核心类,即是MIDlet跟Displayable两类。
1、其中MIDlet是J2ME的主类,任何程序主类都需要继承MIDlet来控制整个游戏的生命周期,需要覆盖MIDlet中的三个周期方法startApp、pauseApp跟destoryApp,分别为执行开始、暂停、结束等动作的操作体。
- public class Game Testextends MIDlet
 - implements CommandListener{
 - /**
 - *游戏引擎介绍
 - */
 - privateCommandexitCommand;
 - privateGameCanvasTestgameCanvas;
 - publicGameTest(){
 - exitCommand=newCommand("exit?,command.exit,1);
 - GameCanvasTestgameCanvas=newGameCanvasTest(this);
 - sfcan.addCommand(exitCommand);
 - sfcan.setCommandListener(this);
 - Display.getDisplay(this).setCurrent(gameCanvas);
 - //TODO自动生成构造函数存根
 - }
 - protectedvoidstartApp()
 - throwsMIDletStateChangeException{
 - //TODO自动生成方法存根
 - //gameCanvas.thread.start();
 - }
 - protectedvoidpauseApp(){
 - //TODO自动生成方法存根
 - try{
 - gameCanvas.thread.wait();
 - }catch(Exceptione){}
 - }
 - protectedvoiddestroyApp(booleanarg0)
 - throwsMIDletStateChangeException{
 - //TODO自动生成方法存根
 - gameCanvas=null;
 - }
 - publicvoidcommandAction(Commandc,Displayabled){
 - if(c==exitCommand){
 - notifyDestroyed();
 - }
 - }
 - //实现游戏过程界面跟不同操作变化的调度
 - publicvoidchangeTale(inttaleIndex)
 - {
 - 具体代码实现.......
 - Display.getDisplay(this).setCurrent(....);
 - }
 - }
 
GameTest类继承了MIDlet类,实现游戏生命周期的控制,而且也仅仅对游戏生命周期的控制跟游戏过程中的UI调度工作,而把具体的游戏核心模块放到GameCanvasTest类中去实现。#p#
2、Displayable是游戏的显示效果核心,在J2ME游戏设计中使用GameCanvas类完成游戏画布工作,设计类继承GameCanvas来实现游戏核心模块,通常将游戏主循环放置于该类中实现整个游戏的控制,因此在继承GameCanvas的同时还需要实现循环Runnable接口。
- public class Game Canvas Test extends Game
 - Canvas implements Runnable{
 - //声明变量.......
 - publicGameCanvasTest(MIDletmidlet)
 - {
 - super(true);
 - //初始化变量.......
 - }
 - publicvoidrun(){
 - keyPressed(getKeyStates());
 - spritePixel();
 - drawCanvas();
 - //其他方法以及处理.......
 - }
 - protectedvoidkeyPressed(intkeyCode){
 - //按键处理.......
 - }
 - publicvoidspritePixel(){
 - //精灵以及地图坐标变幻控制......
 - }
 - publicvoiddrawCanvas(){
 - //根据坐标变化重绘画面处理........
 - }
 - }
 
GameCanvasTest类中完成了游戏主干部分,包括键盘按键事件处理、坐标变化、画面重绘,当然游戏精灵跟地图背景也在该类中定义,并使用LayerManager进行管理。
以上是一般的游戏架构,当然,在较复杂的游戏设计里面,使用以上架构将会较麻烦,使得程序不清晰。因此在程序设计中可以采用MVC模式来构建游戏引擎,将各部分抽象出来不同的层(分别为UI显示、线程控制以及输入监控等调度、精灵等游戏具体模型)去完成各自的功能,从而提高软件的可读性跟可维护性。
                分享题目:J2ME手机游戏引擎程序架构
                
                本文来源:http://www.csdahua.cn/qtweb/news15/64165.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网