<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    饒榮慶 -- 您今天UCWEB了嗎?--http://www.ucweb.com

    3G 手機(jī)開發(fā)網(wǎng)

       :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      99 Posts :: 1 Stories :: 219 Comments :: 0 Trackbacks
    雙緩沖技術(shù)的應(yīng)用很廣泛,設(shè)計(jì)游戲的時(shí)候更是需要它,

    ???? 在midp1.0中,api中并沒有g(shù)ame這個(gè)包,看到網(wǎng)上很多人在討論設(shè)計(jì)游戲的時(shí)候會(huì)出現(xiàn)圖片斷裂,屏幕閃爍等問題。

    ???? 我經(jīng)過這幾天的學(xué)習(xí)整理下自己的學(xué)習(xí)心得,用來拋磚,希望對(duì)此有研究高手們相互討論。讓我也學(xué)習(xí)學(xué)習(xí)。

    ????

    ???? 雙緩沖的原理可以這樣形象的理解:把電腦屏幕看作一塊黑板。首先我們?cè)趦?nèi)存環(huán)境中建立一個(gè)“虛擬“的黑板,然后在這塊黑板上繪制復(fù)雜的圖形,等圖形全部繪制完畢的時(shí)候,再一次性的把內(nèi)存中繪制好的圖形“拷貝”到另一塊黑板(屏幕)上。采取這種方法可以提高繪圖速度,極大的改善繪圖效果。

    ??? 對(duì)于手機(jī)來說。具體的過程就是通過extends Canvas。然后獲取bufferImage。再然后就getGraphics。最后就是在這個(gè)graphics中繪制圖片等,再最后就是把這個(gè)繪制好的bufferImage繪制的屏幕上。

    ???? 說歸說。具體還是要看代碼的。里面的代碼參照了一些開源的代碼。

    java 代碼
    1. package?org.wuhua.game;??
    2. ??
    3. import?javax.microedition.lcdui.Canvas;??
    4. import?javax.microedition.lcdui.Graphics;??
    5. import?javax.microedition.lcdui.Image;??
    6. ??


    7. ?

    8. ??
    9. /**?
    10. ?*?類名:GameCanvas.java?

      ?編寫日期:?2006-11-29?

      ?程序功能描述:
      ?

    11. ?*?實(shí)現(xiàn)雙緩沖的Game畫布。實(shí)現(xiàn)原理是創(chuàng)建一個(gè)BufferImage。然后繪制,最后顯示出來。就這么簡(jiǎn)單。

      ?Demo:?

      ?Bug:
      ?

    12. ?*?

      ?

    13. ?*??
    14. ?*?程序變更日期?:

      ?變更作者?:

      ?變更說明?:

      ?

    15. ?*??
    16. ?*?@author?wuhua?

      ?
      ?

    17. ?*/??
    18. public?abstract?class?GameCanvas?extends?Canvas?{??
    19. ??
    20. ????/**?
    21. ?????*?繪制緩沖的圖片。用戶繪制資源的時(shí)候都是操作這個(gè)圖片來進(jìn)行的?
    22. ?????*/??
    23. ????private?Image?bufferImage;??
    24. ??
    25. ????private?int?height;??
    26. ??
    27. ????private?int?width;??
    28. ??
    29. ????private?int?clipX,?clipY,?clipWidth,?clipHeight;??
    30. ??
    31. ????private?boolean?setClip;??
    32. ??
    33. ????protected?GameCanvas()?{??
    34. ??
    35. ????????super();??
    36. ??
    37. ????????width?=?getWidth();??
    38. ????????height?=?getHeight();??
    39. ??
    40. ????????this.bufferImage?=?Image.createImage(width,?height);??
    41. ??
    42. ????}??
    43. ??
    44. ????protected?void?paint(Graphics?g)?{??
    45. ????????//如果要求繪制指定區(qū)域的話就需要這樣了??
    46. ????????if?(this.setClip)?{??
    47. ????????????g.clipRect(this.clipX,?this.clipY,?this.clipWidth,?this.clipHeight);??
    48. ????????????this.setClip?=?false;??
    49. ????????}??
    50. ????????g.drawImage(this.bufferImage,?0,?0,?Graphics.TOP?|?Graphics.LEFT);??
    51. ??
    52. ????}??
    53. ??
    54. ????public?void?flushGraphics(int?x,?int?y,?int?width,?int?height)?{??
    55. ????????this.setClip?=?true;??
    56. ????????this.clipX?=?x;??
    57. ????????this.clipY?=?y;??
    58. ????????this.clipWidth?=?width;??
    59. ????????this.clipHeight?=?height;??
    60. ??
    61. ????????repaint();??
    62. ????????serviceRepaints();??
    63. ????}??
    64. ??
    65. ????public?void?flushGraphics()?{??
    66. ????????repaint();??
    67. ????????serviceRepaints();??
    68. ????}??
    69. ??
    70. ????/**?
    71. ?????*?設(shè)計(jì)者主要是通過調(diào)用這個(gè)方法獲取圖片。然后就可以繪制了?
    72. ?????*?@return?
    73. ?????*/??
    74. ????protected?Graphics?getGraphics()?{??
    75. ????????return?this.bufferImage.getGraphics();??
    76. ????}??
    77. ??
    78. ????/**?
    79. ?????*?這個(gè)方法主要是處理Nokia平臺(tái),用戶調(diào)用setFullScreenMode(boolean?enable)?時(shí)重新按照新的w?&?h創(chuàng)建緩沖圖片?
    80. ?????*/??
    81. ????protected?final?void?sizeChanged(int?w,?int?h)?{??
    82. ????????if?(h?>?height)?{??
    83. ????????????this.bufferImage?=?Image.createImage(w,?h);??
    84. ????????}??
    85. ????}??
    86. }?



    爬蟲工作室 -- 專業(yè)的手機(jī)軟件開發(fā)工作室
    3G視線 -- 專注手機(jī)軟件開發(fā)
    posted on 2007-03-21 17:45 3G工作室 閱讀(1237) 評(píng)論(0)  編輯  收藏 所屬分類: j2me
    主站蜘蛛池模板: 最好免费观看高清在线| 日韩在线视频线视频免费网站| 91视频免费观看高清观看完整| 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲色图视频在线观看| 国产精品免费福利久久| 亚洲av色影在线| 久久国产色AV免费观看| 亚洲精品网站在线观看你懂的| 99热精品在线免费观看| 亚洲精品一卡2卡3卡三卡四卡| 中文字幕在线免费观看| 亚洲人成在线播放| 成人免费网站在线观看| 亚洲av中文无码字幕色不卡| 国产大片线上免费看| 人妻仑乱A级毛片免费看| 亚洲日韩一页精品发布| 老司机69精品成免费视频| 久久亚洲春色中文字幕久久久 | 看全色黄大色大片免费久久| 亚洲aⅴ无码专区在线观看| 亚洲福利精品电影在线观看| 中文字幕免费在线看电影大全 | 亚洲精品成a人在线观看夫| 免费吃奶摸下激烈视频| 国产日韩AV免费无码一区二区三区| 亚洲中文字幕无码爆乳AV| 91短视频在线免费观看| 在线aⅴ亚洲中文字幕| 亚洲精品99久久久久中文字幕 | 免费成人在线电影| 亚洲人成7777影视在线观看| 免费的一级片网站| 国内永久免费crm系统z在线 | 亚洲中久无码不卡永久在线观看| 两个人www免费高清视频| 亚洲国产精品综合久久2007 | 亚洲av中文无码乱人伦在线r▽ | 香蕉97超级碰碰碰免费公| 国产亚洲女在线线精品|