Tutorial 1: Hello World !Willkommen zum ersten Tutorial von der Irrlicht .Net CP.
Dieses Tutorial stammt vom anfang aus
dieser Seite.Und wurde von mir in das Deutsch übersetzt.
Dieses Tutorial soll zeigen wie ihr eine MD2 Animation ladet.
Und des weiteren werden wir einen Kleine Text am Fenster rand
ausgeben das "Hello World" Lautet.
Das ganz wird dann am ende so ausschauen
Als aller erstes fügen wir unserer "Using" variablen ein.
Code:
using System;
using System.Collections.Generic;
using System.Text;
using IrrlichtNETCP;
using IrrlichtNETCP.Inheritable;
Dann folgt Namespace,Klasse, und die üblich "main" funktion.
Code:
namespace Tutorial01
{
class Tutorial01
{
static void Main(string[] args)
{
Die wichtigste Funktion ist die "createDevice" Funktion
Sie bestimmt die Eigenschaften der Irrlicht Anwendung. In
Dieser Example( Beispiel ) wird der Renderer "EDT_SOFTWARE"
benutz aber sie können auch anderer Renderer benutzen !
Bennen sie einfach "EDT_SOFTWARE" in EDT_NULL, EDT_DIRECTX8
oder EDT_OPENGL .
Bei der windowSize also "Windows Auflösung" wird bestimmt
wie groß bzw. wie breit die Irrlicht Anwendung sein soll
in diesen Example( Beispiel ) werden wir die werte 512x384.
Bits, bestimmt die Farbtiefe der Irrlicht Anwendung, das
weren (16 oder 32) der Parameter "Bits" wird ignoriert wenn
die Irrlicht Anwendung nicht im Vollbildmodus ist.
( Fullscreen ) Vollbildmodus
Bestimmt ob die Irrlicht Anwendung im Vollbildmodus starten
soll oder nicht, stand art mäßig ist der Vollbildmodus aus-
geschaltet.
Der Parameter "stencilbuffer" sorgt dafür das Schatten Pro-
doziert bzw. gezeichnet werden.
Gibt an, ob vsync aktiviert bzw. deaktiviert ist Dieser Pa-
rameter kann man nur im Vollbildmodus benutzen.
eventReceiver: Ein Objekt, welches die Events empfngt.
In diesen Example( Beispiel ) werden wir in nicht benutzen
deshalb schalten wir in aus also "0".
Code:
IrrlichtDevice device = new IrrlichtDevice(DriverType.Software,
new Dimension2D
(512, 384), // Auflösung
32, // Die Farbtiefe
false, // Fullscreen
true, // stencilbuffer
true, // vsync
true); // eventReceiver
Jetzt stellen wir den Fenstertitel ein.
Code:
device.WindowCaption = "Hello World !";
Hier stellen wir die von irrlicht mitgelieferte Irrlicht Media Verzeichnis an.
Code:
device.FileSystem.WorkingDirectory = "../../media";
Damit wir nicht jedes mal z.B. extra "device.VideoDriver" schreiben
müssen können wir das mit dieser netten Funktion etwas
verkürzen. Das wir z.B. bloß "driver" schreiben müssen.
Code:
VideoDriver driver = device.VideoDriver;
SceneManager smgr = device.SceneManager;
GUIEnvironment guienv = device.GUIEnvironment;
Hier wird unser Text geaddet das "Hello World" lautet.
Und des weiteren wird die Position und größe des Textes
fest gestellt.
Code:
guienv.AddStaticText("Hello World!",
new Rect(new Position2D(10, 10), new Dimension2D(200, 22)), true,
false, guienv.RootElement, -1, false);
Das laden des Meshes wird hier bestimmt, un zwar
ist das die "sydney.md2" die auch im Screen hot
zu sehen ist.
Code:
AnimatedMesh mesh = smgr.GetMesh("sydney.md2");
AnimatedMeshSceneNode node = smgr.AddAnimatedMeshSceneNode(mesh);
Jetzt braucht unsere animation natürlich auch noch eine
Textur ! Die lautet "sydney.bmp"
Code:
if (node != null)
{
node.SetMaterialFlag(MaterialFlag.Lighting, false);
node.SetFrameLoop(0, 310);
node.SetMaterialTexture(0, driver.GetTexture("sydney.bmp"));
}
Hinzufgen der Camera
Code:
CameraSceneNode cam = smgr.AddCameraSceneNode(smgr.RootSceneNode);
cam.Position = new Vector3D(0, 30, -40);
cam.Target = new Vector3D(0, 5, 0);
Jetzt nur noch alles rendern.
Code:
while (device.Run())
{
driver.BeginScene(true, true, new Color
(255, 100, 101, 140)); //Hintergrund Farbe
smgr.DrawAll();
guienv.DrawAll();
driver.Draw3DTriangle(new Triangle3D(
new Vector3D(0, 0, 0),
new Vector3D(10, 0, 0),
new Vector3D(0, 10, 0)),
Color.Red);
driver.EndScene();
}
Zuguter letzt wird das Irrlicht device gelert.
Code:
device.Dispose();
Und danach kommt das ende von Namespace,Klasse, und der main schleife.
Code:
} // Ende der Main Schleife
} //Ende der Klasse
} //Ende von Namespace
Das ganze gibt es auch in Quellcode