<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 手機開發網

       :: 首頁 :: 聯系 :: 聚合  :: 管理
      99 Posts :: 1 Stories :: 219 Comments :: 0 Trackbacks
    雙緩沖技術的應用很廣泛,設計游戲的時候更是需要它,

    ???? 在midp1.0中,api中并沒有game這個包,看到網上很多人在討論設計游戲的時候會出現圖片斷裂,屏幕閃爍等問題。

    ???? 我經過這幾天的學習整理下自己的學習心得,用來拋磚,希望對此有研究高手們相互討論。讓我也學習學習。

    ????

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

    ??? 對于手機來說。具體的過程就是通過extends Canvas。然后獲取bufferImage。再然后就getGraphics。最后就是在這個graphics中繪制圖片等,再最后就是把這個繪制好的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. ?*?實現雙緩沖的Game畫布。實現原理是創建一個BufferImage。然后繪制,最后顯示出來。就這么簡單。

      ?Demo:?

      ?Bug:
      ?

    12. ?*?

      ?

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

      ?變更作者?:

      ?變更說明?:

      ?

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

      ?
      ?

    17. ?*/??
    18. public?abstract?class?GameCanvas?extends?Canvas?{??
    19. ??
    20. ????/**?
    21. ?????*?繪制緩沖的圖片。用戶繪制資源的時候都是操作這個圖片來進行的?
    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. ????????//如果要求繪制指定區域的話就需要這樣了??
    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. ?????*?設計者主要是通過調用這個方法獲取圖片。然后就可以繪制了?
    72. ?????*?@return?
    73. ?????*/??
    74. ????protected?Graphics?getGraphics()?{??
    75. ????????return?this.bufferImage.getGraphics();??
    76. ????}??
    77. ??
    78. ????/**?
    79. ?????*?這個方法主要是處理Nokia平臺,用戶調用setFullScreenMode(boolean?enable)?時重新按照新的w?&?h創建緩沖圖片?
    80. ?????*/??
    81. ????protected?final?void?sizeChanged(int?w,?int?h)?{??
    82. ????????if?(h?>?height)?{??
    83. ????????????this.bufferImage?=?Image.createImage(w,?h);??
    84. ????????}??
    85. ????}??
    86. }?



    爬蟲工作室 -- 專業的手機軟件開發工作室
    3G視線 -- 專注手機軟件開發
    posted on 2007-03-21 17:45 3G工作室 閱讀(1242) 評論(0)  編輯  收藏 所屬分類: j2me
    主站蜘蛛池模板: 自拍偷区亚洲国内自拍| 亚洲中文字幕不卡无码| 国产成人免费爽爽爽视频| 国产四虎免费精品视频| 精品免费人成视频app| 无码国产精品一区二区免费式影视| 中文字幕在线免费| 18勿入网站免费永久| 亚洲视频免费在线看| 精品久久久久久久久免费影院| 欧美a级在线现免费观看| 毛片免费在线观看网站| 午夜寂寞在线一级观看免费| 午夜视频免费成人| 又粗又硬免费毛片| 国产亚洲精品自在线观看| 亚洲免费观看视频| 亚洲精品成人av在线| 亚洲熟妇无码久久精品| 亚洲精品国产国语| 国产亚洲男人的天堂在线观看 | 国产伦一区二区三区免费| 国产jizzjizz免费看jizz| 亚洲一区二区三区乱码A| 国产亚洲精品美女久久久| 亚洲黄色三级视频| 亚洲中文字幕无码爆乳app| 黄色a级免费网站| 99视频在线免费观看| 成人免费福利视频| 最近中文字幕mv免费高清电影 | 久久久久免费看成人影片| 亚洲人成免费网站| 日本无卡码免费一区二区三区| 亚洲高清最新av网站| 亚洲人成电影在在线观看网色| 国产精品亚洲专区在线观看| 日本免费精品一区二区三区| 久久99青青精品免费观看| 最近的免费中文字幕视频| 久久精品亚洲乱码伦伦中文|