首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

NetBeans平台開發J2ME遊戲實戰講解(二):繪圖與地圖邏輯實作

     編輯:Java 程式設計入門

核心類別設計:Draw 與 Map

在華容道遊戲的開發中,Draw 類別負責所有圖形的繪製工作。它提供兩個重載的 paint() 靜態方法,根據傳入的圖片識別碼(如曹操、關羽、卒等)、邏輯座標 (x, y) 以及單位長度,計算出畫布上的絕對像素座標,並呼叫 Graphics.drawImage() 繪製對應的角色圖片。對於光標,則改用 drawRect() 畫出方框提示。所有繪圖操作均包裝在 try-catch 區塊中,確保單一繪圖失敗不影響整體流程。

Map 類別則專注於地圖數據的載入與管理。建構子初始化一個二維位元組陣列 Grid[HEIGHT][WIDTH] 存放關卡佈局。read_map(int level) 方法從 /res/levels/level{level} 讀取原始位元組流,逐行填充 Grid,同時偵測光標初始位置(標記為 CURSOR),讀取後將該格重置為空白(BLANK)。讀取過程中會跳過換行符(CR LF)。draw_map(Graphics g) 則遍歷 Grid,委派 Draw.paint() 逐格繪製完整棋盤。

主邏輯控制器:ControlLogic

ControlLogic 繼承 Canvas 並實作 CommandListener,作為遊戲核心控制器。它維護光標位置 loc、選取區域 SelectArea、目標移動區域 MoveArea、地圖實例 MyMap 以及選取狀態旗標 selected。Init_game() 負責讀取關卡、初始化選取區域為光標所在單格、重置移動區域。paint(Graphics g) 先繪製背景框架 image_Frame,再呼叫 MyMap.draw_map(g) 繪製棋盤,最後若 selected 為真則以綠色高亮顯示選取區域(程式碼截斷處)。鍵盤與命令事件處理留待後續實作。

繪圖邏輯示意圖

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved