1. 程式人生 > >跟我來玩IGFrame(二) GFrame & Event(Ver0.2內容更新!!)

跟我來玩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那個引數的,會預設fps30;沒有寬高的,預設為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時需要自己處理關閉視窗

 

能用到的方法大概就這麼多,大家可以呼叫試試。

 

剛才說到了GFrameexit()方法,它會退出程式,但實際我們不會在main方法裡呼叫這個方法(為啥?用大腿想想,吼吼),我們可能在遊戲裡點選“退出遊戲”來關閉程式,但問題來了,GFrame物件是在main方法裡的,在GModel週期模型里根本取不到,當然你可以把GFrame定義為靜態變數,然後使用。對,其實我已經這麼做了~

噹噹噹當~Gcontext類登場,框架上下文,統和整個架子的物件。

通過它可以在任意地方獲取到GFrame物件。

GFrame gFrame = GContext.getGFrame();

當然它還能獲取到別的東東,比如內部時鐘物件GClock物件getGColock()。其它的如獲取GSceneGscreen等等就先不說了,一般都用不到。

 

下面來說一下兩個訊息物件GKeyEventGMouseEvent,在處理滑鼠和鍵盤訊息的方法的引數出現了這兩個物件。

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