成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

J2ME手機(jī)游戲引擎程序架構(gòu)

開(kāi)發(fā) 前端
你對(duì)J2ME手機(jī)游戲引擎程序架構(gòu)是否了解,這里和大家分享一下,游戲引擎可以建立不同的結(jié)構(gòu)體來(lái)實(shí)現(xiàn),但是任何游戲的設(shè)計(jì)都離不開(kāi)通過(guò)設(shè)計(jì)一個(gè)主循環(huán)loop來(lái)重復(fù)控制整個(gè)游戲過(guò)程。

本文向大家簡(jiǎn)單介紹一下J2ME手機(jī)游戲引擎程序架構(gòu),在游戲開(kāi)發(fā)以及任何軟件的設(shè)計(jì)都需要建立一個(gè)穩(wěn)定的引擎結(jié)構(gòu)體,來(lái)作為軟件設(shè)計(jì)的基本架構(gòu),是軟件體系結(jié)構(gòu)的核心支撐框架。

J2ME手機(jī)游戲引擎程序架構(gòu)

在游戲開(kāi)發(fā)以及任何軟件的設(shè)計(jì)都需要建立一個(gè)穩(wěn)定的引擎結(jié)構(gòu)體,來(lái)作為軟件設(shè)計(jì)的基本架構(gòu),是軟件體系結(jié)構(gòu)的核心支撐框架,一切功能的實(shí)現(xiàn)以及擴(kuò)展都在這個(gè)基礎(chǔ)架構(gòu)之上來(lái)完成。一個(gè)游戲的設(shè)計(jì)涉及到游戲控制、角色、游戲場(chǎng)景、道具、游戲聲效以及游戲過(guò)程事件監(jiān)聽(tīng)機(jī)制等元素,因此建立良好的游戲引擎能對(duì)以上各元素進(jìn)行有效的控制。本文介紹在J2ME游戲設(shè)計(jì)中游戲引擎的基本程序架構(gòu)。

游戲引擎可以建立不同的結(jié)構(gòu)體來(lái)實(shí)現(xiàn),但是任何游戲的設(shè)計(jì)都離不開(kāi)通過(guò)設(shè)計(jì)一個(gè)主循環(huán)loop來(lái)重復(fù)控制整個(gè)游戲過(guò)程,當(dāng)然整個(gè)游戲的核心結(jié)構(gòu)(背景幻化控制、精靈坐標(biāo)變化、動(dòng)作幀畫(huà)面變化等)都包含在該循環(huán)中。在J2ME游戲設(shè)計(jì)中,程序架構(gòu)一般需要建立兩個(gè)核心類(lèi),即是MIDlet跟Displayable兩類(lèi)。

1、其中MIDlet是J2ME的主類(lèi),任何程序主類(lèi)都需要繼承MIDlet來(lái)控制整個(gè)游戲的生命周期,需要覆蓋MIDlet中的三個(gè)周期方法startApp、pauseApp跟destoryApp,分別為執(zhí)行開(kāi)始、暫停、結(jié)束等動(dòng)作的操作體。

  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自動(dòng)生成構(gòu)造函數(shù)存根  
  15. }  
  16. protectedvoidstartApp()  
  17. throwsMIDletStateChangeException{  
  18. //TODO自動(dòng)生成方法存根  
  19. //gameCanvas.thread.start();  
  20. }  
  21. protectedvoidpauseApp(){  
  22. //TODO自動(dòng)生成方法存根  
  23. try{  
  24. gameCanvas.thread.wait();  
  25. }catch(Exceptione){}  
  26. }  
  27. protectedvoiddestroyApp(booleanarg0)  
  28. throwsMIDletStateChangeException{  
  29. //TODO自動(dòng)生成方法存根  
  30. gameCanvas=null;  
  31. }  
  32. publicvoidcommandAction(Commandc,Displayabled){  
  33. if(c==exitCommand){  
  34. notifyDestroyed();  
  35. }  
  36. }  
  37. //實(shí)現(xiàn)游戲過(guò)程界面跟不同操作變化的調(diào)度  
  38. publicvoidchangeTale(inttaleIndex)  
  39. {  
  40. 具體代碼實(shí)現(xiàn).......  
  41. Display.getDisplay(this).setCurrent(....);  
  42. }  
  43. }  

GameTest類(lèi)繼承了MIDlet類(lèi),實(shí)現(xiàn)游戲生命周期的控制,而且也僅僅對(duì)游戲生命周期的控制跟游戲過(guò)程中的UI調(diào)度工作,而把具體的游戲核心模塊放到GameCanvasTest類(lèi)中去實(shí)現(xiàn)。#p#

2、Displayable是游戲的顯示效果核心,在J2ME游戲設(shè)計(jì)中使用GameCanvas類(lèi)完成游戲畫(huà)布工作,設(shè)計(jì)類(lèi)繼承GameCanvas來(lái)實(shí)現(xiàn)游戲核心模塊,通常將游戲主循環(huán)放置于該類(lèi)中實(shí)現(xiàn)整個(gè)游戲的控制,因此在繼承GameCanvas的同時(shí)還需要實(shí)現(xiàn)循環(huán)Runnable接口。

  1. public class Game Canvas Test extends Game   
  2. Canvas implements Runnable{  
  3. //聲明變量.......  
  4. publicGameCanvasTest(MIDletmidlet)  
  5. {  
  6. super(true);  
  7. //初始化變量.......  
  8. }  
  9. publicvoidrun(){  
  10. keyPressed(getKeyStates());  
  11. spritePixel();  
  12. drawCanvas();  
  13. //其他方法以及處理.......  
  14. }  
  15. protectedvoidkeyPressed(intkeyCode){  
  16. //按鍵處理.......  
  17. }  
  18. publicvoidspritePixel(){  
  19. //精靈以及地圖坐標(biāo)變幻控制......  
  20. }  
  21. publicvoiddrawCanvas(){  
  22. //根據(jù)坐標(biāo)變化重繪畫(huà)面處理........  
  23. }  
  24. }  

GameCanvasTest類(lèi)中完成了游戲主干部分,包括鍵盤(pán)按鍵事件處理、坐標(biāo)變化、畫(huà)面重繪,當(dāng)然游戲精靈跟地圖背景也在該類(lèi)中定義,并使用LayerManager進(jìn)行管理。

以上是一般的游戲架構(gòu),當(dāng)然,在較復(fù)雜的游戲設(shè)計(jì)里面,使用以上架構(gòu)將會(huì)較麻煩,使得程序不清晰。因此在程序設(shè)計(jì)中可以采用MVC模式來(lái)構(gòu)建游戲引擎,將各部分抽象出來(lái)不同的層(分別為UI顯示、線程控制以及輸入監(jiān)控等調(diào)度、精靈等游戲具體模型)去完成各自的功能,從而提高軟件的可讀性跟可維護(hù)性。

【編輯推薦】

  1. J2ME應(yīng)用程序架構(gòu)模型詳解
  2. 深入了解J2ME Polish+Eclipse配置過(guò)程
  3. J2ME中調(diào)用Canvas制作游戲菜單
  4. Eclipse中進(jìn)行JVM內(nèi)存設(shè)置
  5. 解析Linux下如何用eclipse搭建J2ME開(kāi)發(fā)環(huán)境
責(zé)任編輯:佚名 來(lái)源: hi.baidu.com
相關(guān)推薦

2010-09-29 08:57:04

J2ME前景

2010-09-30 11:16:53

J2ME Snake腳

2009-03-12 10:22:27

EclipseJ2MEJDT

2009-06-15 15:35:00

netbeansj2me

2010-09-30 13:39:52

2010-09-30 13:11:59

J2MECanvas

2010-02-04 13:15:59

Android J2M

2010-09-29 13:09:48

OTAJ2ME程序

2010-09-29 13:16:01

OTAJ2ME

2010-10-09 15:00:22

SnakeJ2ME

2010-09-29 09:19:39

J2ME開(kāi)發(fā)工具

2010-09-29 09:54:09

J2ME應(yīng)用程序

2010-10-09 16:13:10

J2ME應(yīng)用程序

2009-06-11 09:19:38

netbeans實(shí)例J2ME游戲

2010-09-30 13:28:55

J2ME圖形

2009-06-23 11:30:16

RMSJ2ME

2009-03-22 09:38:03

Android移植J2ME

2010-09-30 09:56:26

J2ME Polish

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2010-09-30 11:11:07

J2ME
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产欧美日韩一区二区三区在线观看 | av中文字幕在线 | 欧美三级电影在线播放 | 综合欧美亚洲 | 黄色网页在线观看 | 国产乱码精品一区二区三区五月婷 | 国产成人精品久久二区二区91 | 97综合在线| 国产伦精品| 91精品国产色综合久久不卡98 | 亚洲久久久 | 伊人久久综合 | 污污的网站在线观看 | 婷婷狠狠 | 在线国产一区 | 天堂久 | 夜夜爽99久久国产综合精品女不卡 | 精品久久香蕉国产线看观看亚洲 | 色综合一区二区三区 | 国产高清在线观看 | 亚洲综合字幕 | 1204国产成人精品视频 | 日韩精品 | 成人欧美一区二区三区在线观看 | 亚洲人人舔人人 | 亚洲精品天堂 | 中文字幕视频在线免费 | 久热精品免费 | 56pao在线 | 日本不卡一区二区三区在线观看 | 久久视频精品 | 久久久久国产精品 | 中文字幕在线观看视频网站 | 久久精品—区二区三区 | 国内精品久久久久久久影视简单 | 日韩在线免费视频 | 在线伊人 | avav在线看 | 成人免费在线小视频 | 国产精品色 | 精品国产一区二区三区久久久四川 |