libgdx 学习笔记七 Libgdx模块概述
簡介
LibGDX 包括幾個模塊,對每一個典型的游戲架構步驟提供服務。
- Input?- 對所有平臺提供一個統(tǒng)一的輸入模塊并處理。支持鍵盤,觸摸屏,傳感器,鼠標等
- Graphics?- 開啟屏幕上圖像的繪制,支持OpenGL ES。
- Files?- 抽象所有平臺文件訪問為讀寫操作提供合適的方法。
- Audio?- 在所有平臺上有利于聲音的記錄和播放。
- Math?- 很實用的模塊,對于游戲開發(fā)提供最快的數(shù)學計算
- Physics?- 對于Box2D的完整封裝
以下圖表顯示了在一個簡單的游戲構架中的各個模塊:
以下簡潔的描述各個模塊關于最常見的使用情況
Input
輸入模塊在每個平臺上輪詢不同的輸入狀態(tài)。他允許遍歷每一個鍵,觸摸屏,傳感器的狀態(tài),在桌面當傳感器不能使用時由鼠標取代觸摸。
意味著用一個基于Input模塊的事件注冊輸入處理程序。
以下是代碼片段 如果在程序運行中發(fā)生了一個觸摸事件,獲得當前觸摸坐標
if (Gdx.input.isTouched()) {System.out.println("Input occurred at x=" + x + ", y=" + y);
}
所有支持輸入的相似函數(shù)都會遍歷與處理。
Graphics
圖形模塊抽象了GPU和提供合適方法獲得OpenGL ES的實例之間的通信。他處理所有樣例代碼 保持OpenGL的實例和處理所有由制造者提供的實現(xiàn)。
圖形模塊 提供方法生成位圖和紋理,例如用以下代碼獲得一個OpenGL API 1.0 的實例。
GL10 gl = Gdx.graphics.getGL10 ();上面方法返回一個能在屏幕上繪制的實例對象。如果硬件配置不支持 OpenGL ES v1.0,他返回null。以下片段 用紅色畫筆清理屏幕
gl.glClearColor(0.1f, 0.0f, 0.0f, 1);gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
他返回一個具體的API實例(lwjgl, jogl or android),因此主應用程序支持的API需要手動指定
支持的API版本
| 1.0 | Gdx.graphics.getGL10(); |
| 1.1 | Gdx.graphics.getGL11(); |
| 2.0 | Gdx.graphics.getGL20(); |
學習更多圖形模塊的知識可以點擊?here
Files
文件模塊提供一個泛型方法訪問文件而不用關心平臺。它很容易讀寫文件,文件寫入有一定的局限性,這是由于平臺的安全限制。
文件模塊最常見的使用情況是從同一應用程序的子目錄中載入一個游戲資源。對于寫入最高分數(shù)或者游戲狀態(tài)文件來說很有用
以下例子從 當前的$APP_DIR/assets/textures 目錄創(chuàng)建一個Texture 文件。
Texture myTexture = new Texture(Gdx.files.internal(“assets/texture/brick.png”));這是一個非常強大的抽象層它用來在android和桌面應用之間工作
Audio
音頻模塊使創(chuàng)建和播放一個音頻文件非常簡單。他也能直接訪問聲音硬件。他處理兩種類型的聲音文件。音樂與聲音(Music,Sound)。支持WAV,MP3,OGG格式。
每次播放一個文件,他就從音頻設備流出。
以下代碼片段從磁盤上多次播放一個myMusicFile.mp3聲音并設置了音量為一半
Music music = Gdx.audio.newMusic(Gdx.files.getFileHandle("data/myMusicFile.mp3", FileType.Internal));music.setVolume(0.5f);
music.play();
music.setLooping(true);
Math
待定(官方暫無)
Physics
待定(官方暫無)
轉載于:https://www.cnblogs.com/tianjian/archive/2011/09/02/2163864.html
總結
以上是生活随笔為你收集整理的libgdx 学习笔记七 Libgdx模块概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Core Location定位
- 下一篇: 虚拟机USB问题