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

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

             :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            99 Posts :: 1 Stories :: 219 Comments :: 0 Trackbacks
          設(shè)計(jì)游戲我個(gè)人認(rèn)為一個(gè)好的角色操作將事半工倍。所以我現(xiàn)在把雷電的所有角色抽象成一個(gè)Fairy。里面有實(shí)現(xiàn)繪制的方法以及移動(dòng),碰撞算法。

          ????? 在這里我強(qiáng)調(diào)下,我的碰撞算法是簡單的實(shí)現(xiàn)。就是一個(gè)物體為參照物體。在10像素范圍內(nèi)x,y軸如果發(fā)現(xiàn)另外一個(gè)物體侵入則判斷為true,發(fā)之為false

          java 代碼


          ?


          1. ???

          2. package?org.wuhua.game.model;??

          3. ??

          4. import?javax.microedition.lcdui.Graphics;??

          5. import?javax.microedition.lcdui.Image;??

          6. ??

          7. import?org.wuhua.game.util.Log;??

          8. ???

          9. /**?

          10. ?*?類名:Sprite.java?

            ?
            ?

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

            ?

          12. ?*?程序功能描述:建立精靈物體模型?

            ?

          13. ?*?Demo:?

            ?

          14. ?*?Bug:?

            ?

          15. ?*??

          16. ?*?程序變更日期?:

            ?
            ?

          17. ?*?變更作者?:

            ?
            ?

          18. ?*?變更說明?:

            ?

          19. ?*??

          20. ?*?@author?wuhua?

            ?
            ?

          21. ?*/??

          22. public?class?Fairy?{??

          23. ????static?Log?log?=?Log.getLog("Fairy");??

          24. ????/**?

          25. ?????*?position?of?Fairy?in?x?offset??

          26. ?????*/??

          27. ????int?x;?//?=?0;??

          28. ??

          29. ????/**?

          30. ?????*?position?of?Fairy?in?y?offset??

          31. ?????*/??

          32. ????int?y;?//?=?0;??

          33. ??

          34. ????/**?

          35. ?????*?width?of?layer??

          36. ?????*/??

          37. ????int?width;?//?=?0;??

          38. ??

          39. ????/**?

          40. ?????*?height?of?layer?

          41. ?????*/??

          42. ????int?height;?//?=?0;??

          43. ??

          44. ????/**??

          45. ?????*?If?the?Layer?is?visible?it?will?be?drawn?when?paint?

          46. ?????*?is?called.?

          47. ?????*/??

          48. ????boolean?visible?=?true;??

          49. ??????

          50. ????/**?

          51. ?????*?圖片資源?

          52. ?????*???

          53. ?????*/??

          54. ??????

          55. ????Image?fairy;???

          56. ??????

          57. ????public?Fairy(Image?fairy,int?x,?int?y){??

          58. ????????this.fairy?=?fairy;??

          59. ????????this.x?=?x;??

          60. ????????this.y?=?y;??

          61. ????}??

          62. ??????

          63. ????public?void?setPosition(int?x,?int?y)?{??

          64. ????????this.x?=?x;??

          65. ????????this.y?=?y;??

          66. ????}??

          67. ??????

          68. ????public?void?move(int?dx,?int?dy)?{????

          69. ???????

          70. ????????x?+=?dx;??

          71. ????????y?+=?dy;??

          72. ????}??

          73. ??????

          74. ????public?void?setVisible(boolean?visible)?{??

          75. ????????this.visible?=?visible;??

          76. ????}??

          77. ??

          78. ?????

          79. ????public?final?boolean?isVisible()?{??

          80. ????????return?visible;??

          81. ????}??

          82. ??

          83. ????public?final?int?getHeight()?{??

          84. ????????return?height;??

          85. ????}??

          86. ??

          87. ????public?final?int?getWidth()?{??

          88. ????????return?width;??

          89. ????}??

          90. ??

          91. ????public?final?int?getX()?{??

          92. ????????return?x;??

          93. ????}??

          94. ??

          95. ????public?final?int?getY()?{??

          96. ????????return?y;??

          97. ????}??

          98. ??????

          99. ????public?void?paint(Graphics?g){??

          100. ????????if?(g?==?null)?{??

          101. ????????????throw?new?NullPointerException("Graphics?不存在");??

          102. ????????}??

          103. ????????if(this.visible){??

          104. ????????????//log.debug("x="?+?x?+?"?y="?+?y);???

          105. ????????????g.drawImage(fairy,?x,?y,??Graphics.TOP?|?Graphics.HCENTER);??

          106. ????????}??

          107. ????}??

          108. ??

          109. ????/**?

          110. ?????*?進(jìn)行簡單的碰撞算法,?希望高手可以給個(gè)建議。?

          111. ?????*?@param?f?

          112. ?????*?@return?

          113. ?????*/??

          114. ????public?final?boolean?collidesWith(Fairy?f){??

          115. ??????????

          116. ???????

          117. ????????if((f.getX()?>=?this.getX()?-?20?&&?f.getX()?<=?this.getX()?+?20)??

          118. ????????????????&&??(f.getY()?>=?this.getY()?-?10??&&?f.getY()?<=?this.getY()+10?)){??

          119. ????????????//log.debug("this.getY="?+?this.getY());??

          120. ????????????//log.debug("f.getY="?+?f.getY());??

          121. ???????????????

          122. ???????????????

          123. ????????????return?true;??

          124. ????????}??

          125. ??????????????

          126. ????????return?false;??

          127. ????}??

          128. ???

          129. ??

          130. }??






          爬蟲工作室 -- 專業(yè)的手機(jī)軟件開發(fā)工作室
          3G視線 -- 專注手機(jī)軟件開發(fā)
          posted on 2007-03-27 12:27 3G工作室 閱讀(1227) 評論(0)  編輯  收藏 所屬分類: j2me
          主站蜘蛛池模板: 乃东县| 隆尧县| 句容市| 香港| 酒泉市| 安平县| 咸宁市| 和平县| 株洲市| 云霄县| 赣州市| 五寨县| 扎囊县| 曲松县| 信宜市| 宁阳县| 宁夏| 布拖县| 汤原县| 湟源县| 绍兴市| 酒泉市| 江都市| 自治县| 怀仁县| 宁海县| 宜宾县| 靖远县| 元氏县| 广平县| 托里县| 榆树市| 鄂尔多斯市| 东明县| 沁阳市| 阳谷县| 凤阳县| 左云县| 新龙县| 常德市| 将乐县|