麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

J2ME游戲開發中的地圖設計與繪制

2019-11-18 15:41:47
字體:
來源:轉載
供稿:網友

  在開發很多類型的游戲中,地圖系統都需要良好的設計,直觀的說,我們需要的地圖系統僅僅是一個2D數組,然后用最快的方式將數組影射到屏幕上。
   游戲中的地圖通常不是由程序員用鍵盤輸入到程序里然后再在程序中修改然后再修改的狂亂過程,而是一般先由程序員做一個地圖編輯器,在這個地圖編輯器中用鼠標點點點,再保存的過程,或者是從網絡上下載的一些成熟編輯器比如:mappy這樣的工具生成地圖,再用腳本語言為mappy寫一個應該保存成什么樣格式的程序。通常地圖分為45度角,側視角和俯視角等等,45度角的也有很多種,這種視角相對俯視角和側視叫較復雜,我們主要討論俯視角,其實側視叫和俯視角主要的區別是圖片的表現風格不一樣,比如雷電這樣的空戰就是俯視角,mario這樣的游戲就是側視角,可以用相同的地圖編輯器做出來。綜上,你要知道游戲地圖不是程序員用程序寫出來的,你喜歡寫也可以,修改起來較麻煩,也不能像資源一樣動態治理而是一次性讀入到內存里,比較不爽。

   在這個文章里面,我們假設我們的2D數組是通過,資源讀取出來的,內容如下:

  public static byte[][] B_MAZE_2D_ARRAY = {
   {
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
   , {
   0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
   , {
   0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
   , {
   0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
   , {
   0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}
   , {
   0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}
   , {
   0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}
   , {
   0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0}
   , {
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}
   , {
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}
   , {
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

   };

  這個地圖中一共0,1兩種byte數,0代表一種圖塊,1代表一種圖塊,也可以是動畫圖塊,你繪制的時候區別一下就可以了。因為我們程序里面想把這整個圖形繪制出來的話有N多種方案,我給出兩個比較合理的方案,當然第二種是比較優化的.我們假設你的主角一直在屏幕中心,當你主角移動的時候,地圖相應的變化,就是說主角為參照物,地圖動.我們知道地圖的大小要超過屏幕的,我們需要設定一個坐標系統,我的方法是,以左上角為0,0也就是和我們常用的Canvas的坐標系統是相同的,我們的圖塊大小為:ELEMENT_WIDTH, ELEMENT_HEIGHT,所以我們整個地圖的面積(絕對面積)是 ELEMENT_WIDTH * 橫坐標的塊數 * ELEMENT_HEIGHT*縱坐標的塊數。因此,我們把這么大的題圖畫在屏幕上時,需要把需要畫的坐標面積(也就是屏幕面積)從這個地圖中拿出來,其他地方被切除,這就比較的高效了。
  方法一:循環整個2維數組,不需要的地方不繪制只繪需要的部分:

   int kI = 0;// 表示
   int kJ = 0;
  //nEleStartedX, nEleStartedY表示從2D Array哪個位置開始繪制地圖


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲最新黄色网址 | 欧美成人福利 | 午夜人体 | 一区二区三区视频在线观看 | 国产一国产一级毛片视频在线 | 51色视频| 国产一级爱c视频 | 手机av免费在线 | 性爱视频在线免费 | 狠狠干最新网址 | 日韩黄色免费电影 | 国产免费专区 | 亚洲精品91 | 男人天堂免费 | 国产美女自拍av | xxxx8| 97久色 | 成人免费精品视频 | 欧美视频一级 | 欧美 日韩 亚洲 中文 | 视频一区二区三区视频 | 福利在线小视频 | 手机av免费电影 | 欧美日韩手机在线观看 | 91在线精品亚洲一区二区 | 精国产品一区二区三区 | 蜜桃视频在线免费播放 | 在线免费91 | 欧美a在线播放 | 免费黄色短视频网站 | 国产精品色在线网站 | 在线看小早川怜子av | 久久久久久久国产视频 | 国产一级一片免费播放 | 国产免费久久久久 | 欧美成人精品一区二区三区 | 国产精品视频成人 | 欧美三区在线 | 中国漂亮护士一级a毛片 | 在线免费观看毛片视频 | 视频一区免费观看 |