跳轉至內容

JMonkeyEngine:初學者

25% developed
來自 Wikibooks,開放的世界,開放的書籍

JME 3 教程 (1) - Hello SimpleApplication

[編輯 | 編輯原始碼]

前一頁: 安裝 JME3,下一頁: Hello Node

先決條件: 本教程假設您

您已準備好建立第一個 jMonkeyEngine3 遊戲!您通常可以在此入門系列中使用任何整合開發環境 (IDE) 中使用這些教程,例如 jMonkeyPlatform、NetBeans、Eclipse 或直接從命令列執行它們。在以下內容中,我們將使用 jMonkeyPlatform。

編寫一個 SimpleApplication

[編輯 | 編輯原始碼]

建立一個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 設定對話方塊,請確認預設設定。

  1. 您應該看到一個簡單的視窗,顯示一個 3D 立方體。
  2. 使用 WASD 鍵和滑鼠在周圍導航。
  3. 按 Escape 鍵關閉應用程式。

恭喜,它成功了!我們是怎麼做到的呢?

理解程式碼

[編輯 | 編輯原始碼]

上面的程式碼初始化了場景,並啟動了遊戲。

理解術語

[編輯 | 編輯原始碼]
您想要做什麼
您在 JME3 術語中如何表達
您想要建立一個立方體。 您建立一個 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 遊戲有以下初始化過程

  1. 您初始化遊戲物件
    • 您建立或載入物件並對其進行定位。
    • 您透過將物件附加到rootNode.
    • 來使它們出現在場景中
  1. 示例:載入玩家、地形、天空、敵人、障礙物,並將它們放置在它們開始的位置。
    • 您初始化變數
    • 您將變數設定為它們的初始值。
    • 您想要使用變數來跟蹤遊戲狀態。示例:score設定為 0,將health
  1. 設定為 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方法,您可以在其中建立物件。
  • 方法,您可以在其中將物件附加到場景中以使其可見。

有用的預設輸入設定,您可以使用它們在場景中進行導航。

  1. 在開發遊戲應用程式時,您現在將需要
  2. 初始化您的遊戲世界,
  3. 在事件迴圈中觸發操作,

響應使用者輸入。

在以下教程中,您將學習如何使用 jMonkeyEngine 3 完成這些任務。


繼續學習Hello Node 教程,我們將首先向您展示有關如何初始化遊戲世界的更多詳細資訊,也稱為場景圖。

建立一個 JME3 專案
華夏公益教科書