龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

J2ME手机游戏引擎程序架构(1)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
本文向大家简单介绍一下J2ME手机游戏引擎程序架构,在游戏开发以及任何软件的设计都需要建立一个稳定的引擎结构体,来作为软件设计的基本架构,是软件体系结构的核心支撑框架。

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

J2ME手机游戏引擎程序架构

在游戏开发以及任何软件的设计都需要建立一个稳定的引擎结构体,来作为软件设计的基本架构,是软件体系结构的核心支撑框架,一切功能的实现以及扩展都在这个基础架构之上来完成。一个游戏的设计涉及到游戏控制、角色、游戏场景、道具、游戏声效以及游戏过程事件监听机制等元素,因此建立良好的游戏引擎能对以上各元素进行有效的控制。本文介绍在J2ME游戏设计中游戏引擎的基本程序架构。

游戏引擎可以建立不同的结构体来实现,但是任何游戏的设计都离不开通过设计一个主循环loop来重复控制整个游戏过程,当然整个游戏的核心结构(背景幻化控制、精灵坐标变化、动作帧画面变化等)都包含在该循环中。在J2ME游戏设计中,程序架构一般需要建立两个核心类,即是MIDlet跟Displayable两类。

1、其中MIDlet是J2ME的主类,任何程序主类都需要继承MIDlet来控制整个游戏的生命周期,需要覆盖MIDlet中的三个周期方法startApp、pauseApp跟destoryApp,分别为执行开始、暂停、结束等动作的操作体。

  1. public class Game Testextends MIDlet
  2. implements CommandListener{  
  3. /**  
  4. *游戏引擎介绍  
  5. */  
  6. privateCommandexitCommand;  
  7. privateGameCanvasTestgameCanvas;  
  8. publicGameTest(){  
  9. exitCommand=newCommand("exit?,command.exit,1);  
  10. GameCanvasTestgameCanvas=newGameCanvasTest(this);  
  11. sfcan.addCommand(exitCommand);  
  12. sfcan.setCommandListener(this);  
  13. Display.getDisplay(this).setCurrent(gameCanvas);  
  14. //TODO自动生成构造函数存根  
  15. }  
  16. protectedvoidstartApp()  
  17. throwsMIDletStateChangeException{  
  18. //TODO自动生成方法存根  
  19. //gameCanvas.thread.start();  
  20. }  
  21. protectedvoidpauseApp(){  
  22. //TODO自动生成方法存根  
  23. try{  
  24. gameCanvas.thread.wait();  
  25. }catch(Exceptione){}  
  26. }  
  27. protectedvoiddestroyApp(booleanarg0)  
  28. throwsMIDletStateChangeException{  
  29. //TODO自动生成方法存根  
  30. gameCanvas=null;  
  31. }  
  32. publicvoidcommandAction(Commandc,Displayabled){  
  33. if(c==exitCommand){  
  34. notifyDestroyed();  
  35. }  
  36. }  
  37. //实现游戏过程界面跟不同操作变化的调度  
  38. publicvoidchangeTale(inttaleIndex)  
  39. {  
  40. 具体代码实现.......  
  41. Display.getDisplay(this).setCurrent(....);  
  42. }  
  43. }  

GameTest类继承了MIDlet类,实现游戏生命周期的控制,而且也仅仅对游戏生命周期的控制跟游戏过程中的UI调度工作,而把具体的游戏核心模块放到GameCanvasTest类中去实现。

精彩图集

赞助商链接