Poprzednie: Instalacja JME3,
Następne: Hello Node
+
W tym tutorialu zakładamy, że już pobrałeś oraz odpowiednio ustawiłeś jMonkeyEngine3 w swoim środowisku programistycznym.
+
Tak więc jesteś gotowy na stworzenie pierwszej w gry w jMonkeyEngine3 ! Możesz korzystać z tych wprowadzających tutoriali pracując w praktycznie dowolnym środowisku programistycznym (IDE), takim jak jMonkeyEngine SDK, NetBeans, Eclipse, lub po prostu uruchamiać wszystko z wiersza poleceń.
+
Czas na SimpleApplication
Stwórzmy pakiet jme3test.helloworld
oraz plik HelloJME3.java
.
+
W środowisku NetBeans, klikamy prawym przyciskiem myszy na Source Packages :
-
Wybieramy
New… > Java Class
aby stworzyć nowy plik. -
Wprowadzamy nazwę klasy:
HelloJME3
-
Wprowadzamy wartość dla package:
jme3test.helloworld
-
Klikamy Finish.
Przykładowy kod źródłowy
Jak widzimy stworzony został plik HelloJME3.java. Skopiuj poniższy kod do niego:
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;
/** Przykład 1 - zaczynamy prace z najprostsza aplikacja.
* Wyswietlamy trojwymiarowy szescian i spogladamy na niego z wszystkich stron
* poprzez ruch mysza lub klawisze WSAD. */
public class HelloJME3 extends SimpleApplication {
public static void main(String[] args){
HelloJME3 app = new HelloJME3();
app.start();
}
@Override
public void simpleInitApp() {
Box b = new Box(Vector3f.ZERO, 1, 1, 1);
Geometry geom = new Geometry("Box", b);
Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
mat.setColor("Color", ColorRGBA.Blue);
geom.setMaterial(mat);
rootNode.attachChild(geom);
}
}----
Zbuduj i uruchom klasę HelloJME3. Jeżeli ukaże się jakiekolwiek okno dialogowe, potwierdź domyślne ustawienia.
. Zobaczysz okno, w którym wyświetlany jest sześcian.
. Możesz nawigować w oknie za pomocą klawiszy WASD oraz myszy.
. Naciśnij klawisz Escape, aby wyłączyć aplikację.
Gratulacje, coś w końcu działa. Jak jednak to zrobiłeś?
== Jak to wszystko zrozumieć?
Poniżej przedstawione są podstawowe zasady, którymi “rządzą się gry wykonane w JME3:
=== Start gry
Zauważ, że klasa HelloJME3.java class rozszerza `com.jme3.app.SimpleApplication`, która z kolei jest podklasą `com.jme3.app.Application`. Każda gra wykonana w JME3 jest egzemplarzem `com.jme3.app.Application` (pośrednio lub bezpośrednio). +
+
Aby uruchomić grę, musisz na początku stworzyć egzemplarz odpowiedniej klasy, następnie wywołać jego metodę `start()`:
[source,java]
HelloJME3 app = new HelloJME3(); app.start();
*Porada:* Jeżeli jesteś zaawansowanym programistą języka Java możesz stworzyć kopię `SimpleApplication` i używać jej jako szablonu dla własnych klas. === Inicjalizacja sceny Ta prosta “gra składa się tylko z sześcianu. Poniżej zaprezentowany jest kod, który odpowiada za jego stworzenie, wypozycjonowanie, nadanie koloru oraz samo podpięcie do sceny. (Tymi wszystkimi szczegółami zajmiemy się nieco później.) [source,java]
public void simpleInitApp() { Box b = new Box(Vector3f.ZERO, 1, 1, 1); // tworzy ksztalt szescianu Geometry geom = new Geometry("Box", b); // tworzy geometrie szescianu z ksztaltu Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); // tworzy material mat.setColor("Color", ColorRGBA.Blue); // ustawia kolor materialu geom.setMaterial(mat); // przypisuje material do szescianu rootNode.attachChild(geom); // podpina szescian do sceny }---- Metoda `simpleInitApp()` jest automatycznie wywoływana raz, kiedy uruchamiana jest gra. W tej metodzie tworzysz lub wczytujesz obiekty zanim zacznie się gra! Tak wygląda standardowy proces:
-
Przygotowanie obiektów gry:
-
Stwórz lub wczytaj wszystkie obiekty i rozmieść je odpowiednio.
-
Aby geometria (jak przykładowo pudełko) ukazała się na scenie, podepnij ją do
rootNode
. -
Przykłady: Wczytaj gracza, teren, niebo, wrogów, przeszkodzy i umieść je w odpowiednich miejsach.
-
-
Przygotowanie zmiennych gry:
-
Zmienne w grze “śledzą stan gry. Należy ustawić poprawne wartości początkowe.
-
Przykłady: Ustaw
wynik
na 0, azdrowie
na 100% i tak dalej.
-
-
Przygotowanie nawigacji:
-
Poniższe klawisze są ustawione domyślnie:
-
W,A,S,D – Poruszanie się
-
Mysz i strzałki – Zmiana pozycji kamery
-
Escape - Opuszczanie aplikacji
-
-
W JME3 kluczowym obiektem jest rootNode
. Wszystko co jest podpięte do rootNode pojawia się na scenie. Innymi słowy: Obiekt który został stworzony, ale nie jest podpięty do rootNode, pozostaje niewidoczny.
Podumowanie
Te kilka linijek kodu, nie nothing but display a static object in 3-D, but they already allow you to navigate around in 3D. Dowiedziałeś się również, że SimpleApplication jest naprawdę dobrym miejscem na start ponieważ masz już:
-
metodę
simpleInitApp()
służąca inicjalizacji obiektów gry -
rootNode
where you attach geometries to make them appear in the scene -
domyślne ustawienia nawigacyjne
W prawdziwej grze, musisz:
-
Initialize the game world,
-
Trigger actions in the event loop,
-
Respond to user input.
W kolejnych tutorialach dowiesz się, jak te zadania mogą zostać wykonane w jMonkeyEngine!
+
Przejdź do lekcji Hello Node , gdzie na początku pokażemy Ci więcej szczegółów how to initialize the game world, also known as the scene graph.
Zobacz również: SimpleApplication z wiersza poleceń
<tags><tag target="beginner" /><tag target="intro" /><tag target="documentation" /><tag target="init" /><tag target="Polish" /></tags>