JMonkeyEngine:初學者
前一頁: 安裝 JME3,下一頁: Hello Node
先決條件: 本教程假設您
- 已下載 jMonkeyPlatform(或在您選擇的另一個 IDE 中設定 jMonkeyEngine3)
- 已使用 JME3 庫建立了一個 Java SE 專案,並將 JME3 庫新增到類路徑。
您已準備好建立第一個 jMonkeyEngine3 遊戲!您通常可以在此入門系列中使用任何整合開發環境 (IDE) 中使用這些教程,例如 jMonkeyPlatform、NetBeans、Eclipse 或直接從命令列執行它們。在以下內容中,我們將使用 jMonkeyPlatform。
建立一個jme3test.helloworld包和一個檔案HelloJME3.java放在裡面。
在 jMonkeyPlatform 中,您右鍵單擊 Source Packages 節點
- 選擇新建… > Java 類來建立一個新檔案。
- 輸入一個類名HelloJME3
- 輸入一個包名jme3test.helloworld
- 點選完成。
將 HelloJME3.java 檔案的內容替換為以下程式碼
package jme3test.helloworld;
import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.Vector3f;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;
import com.jme3.math.ColorRGBA;
/** Sample 1 - how to get started with the most simple JME 3 application.
* Display a blue 3D cube and view from all sides by
* moving the mouse and pressing the WASD keys. */
public class HelloJME3 extends SimpleApplication {
public static void main(String[] args){
HelloJME3 app = new HelloJME3();
app.start(); // start the game
}
@Override
public void simpleInitApp() {
Box b = new Box(Vector3f.ZERO, 1, 1, 1); // create cube shape at the origin
Geometry geom = new Geometry("Box", b); // create cube geometry from the shape
Material mat = new Material(assetManager,
"Common/MatDefs/Misc/Unshaded.j3md"); // create a simple material
mat.setColor("Color", ColorRGBA.Blue); // set color of material to blue
geom.setMaterial(mat); // set the cube's material
rootNode.attachChild(geom); // make the cube appear in the scene
}
}
構建並執行 HelloJME3 類。如果彈出一個 jme 設定對話方塊,請確認預設設定。
- 您應該看到一個簡單的視窗,顯示一個 3D 立方體。
- 使用 WASD 鍵和滑鼠在周圍導航。
- 按 Escape 鍵關閉應用程式。
恭喜,它成功了!我們是怎麼做到的呢?
上面的程式碼初始化了場景,並啟動了遊戲。
| 您想要建立一個立方體。 | 您建立一個 Geometry,它有一個 1x1x1 的 Box 形狀。 |
| 您想要使用藍色。 | 您建立一個 Material,它有一個藍色的 Color 屬性。 |
| 您想要將立方體塗成藍色。 | 您設定 Geometry 的 Material。 |
| 您想要立方體出現在場景中。 | 您將立方體附加到 rootNode。 |
在 Java 中,建立一個藍色立方體如下所示
public void simpleInitApp() {
Box b = new Box(Vector3f.ZERO, 1, 1, 1); // create cube shape at the origin
Geometry geom = new Geometry("Box", b); // create cube geometry from the shape
Material mat = new Material(assetManager,
"Common/MatDefs/Misc/Unshaded.j3md"); // create a simple material
mat.setColor("Color", ColorRGBA.Blue); // set color of material to blue
geom.setMaterial(mat); // set the cube's material
rootNode.attachChild(geom); // make the cube appear in the scene
}
在simpleInitApp()方法中,您在遊戲開始之前建立或載入所有遊戲物件。該simpleInitApp()方法在每個 JME3 遊戲開始時自動呼叫一次。
一個典型的 JME3 遊戲有以下初始化過程
- 您初始化遊戲物件
- 您建立或載入物件並對其進行定位。
- 您透過將物件附加到rootNode.
- 來使它們出現在場景中
- 示例:載入玩家、地形、天空、敵人、障礙物,並將它們放置在它們開始的位置。
- 您初始化變數
- 您將變數設定為它們的初始值。
- 您想要使用變數來跟蹤遊戲狀態。示例:將score設定為 0,將health
- 設定為 100%,等等。
- 您初始化鍵和滑鼠操作
- 預設情況下,以下輸入繫結是預先配置的
- W、A、S、D 鍵 - 在場景中移動
- 滑鼠移動和箭頭鍵 - 旋轉相機
- Escape 鍵 - 退出遊戲
- 新增您自己的鍵和滑鼠點選。
- 您初始化鍵和滑鼠操作
示例:點選射擊,按空格鍵跳躍,等等。
開始遊戲[編輯 | 編輯原始碼]HelloJME3.java 類擴充套件了com.jme3.app.SimpleApplication,它是com.jme3.app.ApplicationHelloJME3.java 類擴充套件了.
的子類。每個 JME3 遊戲都是要執行 JME3 遊戲,您首先例項化您的SimpleApplication類的例項,然後呼叫它的start()
public static void main(String[] args){
HelloJME3 app = new HelloJME3();
app.start(); // start the game
}
方法
通常,您從 Java 應用程式的 main() 方法啟動遊戲。
結論這短短幾行程式碼只是顯示了一個靜態的 3D 立方體。您可以在這個 3D 場景中四處導航。
- 您已經瞭解到,SimpleApplication 是一個很好的起點,因為它為您提供了simpleInitApp()一個
- 您已經瞭解到,SimpleApplication 是一個很好的起點,因為它為您提供了rootNode方法,您可以在其中建立物件。
- 方法,您可以在其中將物件附加到場景中以使其可見。
有用的預設輸入設定,您可以使用它們在場景中進行導航。
- 在開發遊戲應用程式時,您現在將需要
- 初始化您的遊戲世界,
- 在事件迴圈中觸發操作,
響應使用者輸入。
在以下教程中,您將學習如何使用 jMonkeyEngine 3 完成這些任務。
繼續學習Hello Node 教程,我們將首先向您展示有關如何初始化遊戲世界的更多詳細資訊,也稱為場景圖。