跟我來玩IGFrame(二) GFrame & Event(Ver0.2內容更新!!)
各位轉載請註明出處,謝謝合作~作者:ioozhuangzi
哈哈~歡迎回來~咱們繼續來折騰俺的架子。
首先先來仔細說說GFrame類的方法,上次的程式碼裡已經用到了兩個方法,其實還有很多別的方法,且聽我講來~
構造方法,這個其實有一堆呢……
public GFrame(IGModel gModel)
public GFrame(String title, IGModel gModel)
public GFrame(String title, IGModel gModel, int fps)
public GFrame(String title, IGModel gModel,
int width, int height)
//雖然很多方法,其實都是這個方法的簡化版,內部使用了一些架子的預設引數
//比如沒有fps那個引數的,會預設fps為30;沒有寬高的,預設為480*320
public GFrame(String title, IGModel gModel, int fps,
int width, int height)
(Ver0.2更新)
//通過Xml來構造,xml格式詳見示例程式碼config.igc.xml檔案
public GFrame(String configXml)
//通過Xml來構造,構造完成時根據autoShowFrame來決定是否呼叫showFrame()顯示視窗
public GFrame(String configXml, boolean autoShowFrame)
下面給出常用的方法:
showFrame()
這個肯定是要呼叫的,用來顯示視窗
exit()
退出程式,這個的用法以後再說。預設情況按Esc會呼叫該方法退出程式
autoRender(boolean autoRender)
是否開啟自動渲染精靈,說到精靈類再說。設定true為開啟
isAutoRender()
判斷是否開啟自動渲染精靈,說到精靈類再說
setShowFPS(boolean isShowFPS)
設定是否顯示實際FPS,設定為true時,會在視窗標題欄看到FPS,預設為false
setShowCursor(boolean isShowCursor)
設定是否顯示滑鼠,預設為true,顯示。在自己做滑鼠圖片是能用到
setIcon(String icon)
設定標題欄圖示,引數是圖片路徑,16*16,建議圖片資源放到src/res/images/
setTitle(String title)
設定視窗標題
setFPS(int fps)
設定FPS
setAlias(boolean isAlias)
設定是否開啟抗鋸齒,可以提升畫面質量,true為開啟,預設為false
setRenderQuality(boolean isRenderQuality)
設定是否開啟高質量渲染,可以提升畫面質量,true為開啟,預設為false
setShowLoading(boolean isShowLoading)
設定程式啟動時是否顯示Loading文字,預設為true開啟
setFullScreen(boolean fullScreen)
設定是否開啟全屏,預設為false不開啟;預設情況可按Esc退出全屏
(Ver0.2更新)
public void forceExit()
無提示退出程式
public void setAccelerateType(int accelerateType)
設定使用的渲染加速型別,可選值GFrame.ACCELERATE_NONE、GFrame.ACCELERATE_OPENGL、GFrame.ACCELERATE_DIRECTX
public void setNoDecorated(boolean noDecorated)
設定視窗是否有邊框和標題欄,為true時需要自己處理關閉視窗
能用到的方法大概就這麼多,大家可以呼叫試試。
剛才說到了GFrame的exit()方法,它會退出程式,但實際我們不會在main方法裡呼叫這個方法(為啥?用大腿想想,吼吼),我們可能在遊戲裡點選“退出遊戲”來關閉程式,但問題來了,GFrame物件是在main方法裡的,在GModel週期模型里根本取不到,當然你可以把GFrame定義為靜態變數,然後使用。對,其實我已經這麼做了~
噹噹噹當~Gcontext類登場,框架上下文,統和整個架子的物件。
通過它可以在任意地方獲取到GFrame物件。
GFrame gFrame = GContext.getGFrame();
當然它還能獲取到別的東東,比如內部時鐘物件GClock物件getGColock()。其它的如獲取GScene、Gscreen等等就先不說了,一般都用不到。
下面來說一下兩個訊息物件GKeyEvent和GMouseEvent,在處理滑鼠和鍵盤訊息的方法的引數出現了這兩個物件。
GKeyEvent封裝了鍵盤訊息,常用方法如下:
getType()
獲取訊息型別,比如是鍵盤按下還是擡起。型別在IGEvent裡定義,
IGEvent.KEY_PRESSED 鍵盤按下
IGEvent.KEY_RELEASED 鍵盤擡起
getKeyCode()
獲取鍵盤程式碼。程式碼定義也在IGEvent裡。比如IGEvent.VK_UP代表上鍵等等
getKeyChar()
當你按下的是字元按鍵時,需要用這個方法獲取,該方法會返回按下的字元
getOrgEvent()
獲取Java原始的鍵盤訊息物件,應該很少用到
GMouseEvent封裝了鍵盤訊息,常用方法如下:
getType()
獲取滑鼠訊息型別,比如按下、擡起、移動等等,定義在IGEvent中。
getMouseX()
獲取滑鼠位置x座標
getMouseY()
獲取滑鼠位置y座標
getButtonCode()
獲取滑鼠按鍵程式碼,定義在IGEvent裡。
IGEvent.MOUSE_LEFT_BUTTON 滑鼠左鍵
IGEvent.MOUSE_RIGHT_BUTTON 滑鼠右鍵
getOrgEvent()
獲取Java原始的滑鼠訊息物件,應該很少用到
寫累了……雖然沒寫多少字,o(∩_∩)o…休息,休息一會兒
Demo專案程式碼下載(專案lib資料夾下的jar包為IGFrame的jar包及相關依賴包)
http://pan.baidu.com/share/link?shareid=408760&uk=504338538 提取密碼:6283
感興趣或者有疑問的各位可以留言或加Q群210816248~驗證:IGFrame