Einführung in Truevision3D

Ähnliche Dokumente
Game Development 1 XNA Framework für PC und Xbox

Programmieren in Java -Eingangstest-

Aufgabenblatt 1: - Präsenzübung für die Übungen Do Mi Ausgabe Mi

Game Engine Architecture and Development. Effekte (Sound, Partikel, Physik)

Übungen zur Android Entwicklung

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Eclipse Tutorial.doc

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Java und Eclipse Installation, erstes Beispielprogramm

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();

Inhalte in Kurse einfügen. Um Inhalte in Kurse einzufügen, logge dich in Moodle ein und betrete deinen Kurs.

file://c:\dokumente und Einstellungen\Admin\Eigene Dateien\NetObjects Fusion 11...

Im Mathe-Pool startet man Eclipse am besten aus einer Shell heraus, und zwar indem man im Home- Verzeichnis den Befehl

Eclipse und Java Einheit 01: Einführung in Eclipse

AntMe! Workshop 8 April 2016

Ogre Einführung Teil 1

Gobales Gedächtnis. AntMe. Sebastian Loers. lb-sys.info. Projekt: AntMe - Globales Gedächtnis (Version 1.0)

JUnit 4 Tutorial. Wolfgang Stöttinger

Arten von Klassen-Beziehungen

Game Development 1. Proseminar Objektorientiertes Programmieren mit.net und C# Philipp Kaiser. Institut für Informatik Software & Systems Engineering

Zahlenraten: Ein Spiel in Java.

Objektorientierte Programmierung Studiengang Medieninformatik

7.0 Arbeiten mit Objekten und Klassen

!Herzlich Willkommen!

Javakurs für Fortgeschrittene

Einstieg in die Informatik mit Java

Software Engineering II

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Software Engineering II

JUnit. Unit testing unter Java

Multimedia im Netz Wintersemester 2012/13

Begleitendes Praktikum zur Vorlesung Künstliche Intelligenz

Inhalt. Design patterns Kernbereiche Creational patterns Factory method Abstract Factory Builder Structural patterns Adapter Facade Decorator

Inhaltsverzeichnis. 2.2 Grundlagen der UML Zusammenfassung... 53

Funktionale und Objekt-Orientierte Programmierkonzepte

1 Modellierung einer Uhr

WPF Steuerelemente. Dr. Beatrice Amrhein

Wie erstelle und installiere ich Bootscreens?

Department of Computer Science Chair of Software Engineering Faculty of Engineering. Architektur von Videospielen

Technische Dokumentation SilentStatistikTool

XNA. Alt Christian, Atzl Caroline, Gintner Peter, Huemer Sandra. January 16, 2009

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Für die Arbeit mit Pygame werden wird die Umgebung PortablePython Version 2.7.x verwenden.

(1)Einführung in Android Studio

Einstieg in die Informatik mit Java

Einführung in die Programmierung 1

C# im Vergleich zu Java

Übung Modellierung SS 15. Übungsblatt Nr. 8 Bereich Systemmodelle und Prozessmodelle Thema: Business Process Model and Notation

Programmieren für Wirtschaftswissenschaftler SS 2015

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 24. Juni 2016

Vorbereitende Aufgaben

Erstellen von Makros / Textbausteine

Java basierte Browser Plug-ins. Martin Kreis 3D-Graphik im Web WS 02/ Java basierte Browser Plug-ins 1. Übersicht

(1)Einführung in Eclipse

System.out.println("TEXT");

Algorithmen und Datenstrukturen 06

Department of Computer Science Chair of Software Engineering Faculty of Engineering. Architektur von Videospielen

Einstieg in die Informatik mit Java

Diplomarbeit LEGO Mindstorms Simulator - JORGE Installationshandbuch.

Arbeitsblatt 6: Programmierung geometrischer Figuren

Source Code Konverter Online: (VB.net <-> C#) Kommerzielle Produkte (VB, C#, C++, Java) Code Nachbearbeitung in der Praxis...

Kapitel 9 Schnittstellen

Übung 1: Object Inspector

Dokumentation: Content App Framework

1 Vorraussetzungen. 2 Installiere Eclipse. FS 2015 Herausgabe: Dr. A. L. Schüpbach, D. Sidler, Z. István Departement Informatik, ETH Zurich

Objekte für Train Simulator 2013 mit Blender 2.65 erstellen. (Teil1)

Swetlana Stickhof. Universität Heidelberg

Tinkerforge GUI Beginner Tutorial By M4ST3R

Einstieg in die Informatik mit Java

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Die Alternative zum Web-Form Modell

Interaktive Simulationen Lektion 3/3: Grafische Ausgabe

Mit PuTTY und WinSCP an der Pi

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

JTable. W. Lang HWR Berlin, SS

Distributed Computing Group

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

1. Tool-Designer Sketcher Installation

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Erzeugungsmuster. Kapselung der Objekt-Erzeugung

Vererbung und Polymorphie

Objektorientiertes Programmieren (Java)

Institut für Informatik

Verknüpfung auf dem Desktop erstellen und konfigurieren

IBM Software Demos Rational Systems Developer Introduction

2 Teil 2: Nassi-Schneiderman

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

II.1.1. Erste Schritte - 1 -

Grundlagen in C# und.net

55 Ring-Queue. size. push. clear. get. Reinhard Schiedermeier / Klaus Köhler, Das Java-Praktikum, dpunkt.verlag, ISBN

Wo bekomme ich die benötigten Dateien?

Installation von Java, Java-Editor und BlueJ

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Arbeitsblatt 5 EAD II NetBeans

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

Digitalkamera Support Hotline

Transkript:

Einführung in Truevision3D Einleitung: In diesem Artikel werden wir uns mit der Truevision Engine beschäftigen, ihr werdet lernen wie man in C# auf die Engine zugreift und wie man einfache 2D Ausgaben durchführt. Die Engine kann in vielen Sprachen verwendet werden (C++, C#, Delphi, Java, VB 6, VB.Net), sie ist für nichtkommerziellen Nutzen kostenlos (es wird dann lediglich ein Wasserzeichen eingeblendet) und für kommerzielle Projekte kostet sie 150$ pro Projekt (weitere Informationen hier). Außerdem beinhaltet die Engine einige nützliche Tools: Model Converter: Erlaubt das konvertieren von 3D Modellen (.3ds/.obj/.mdl) zum Format der Modelle für die Engine (.tvm) Model Viewer: Erlaubt es.tvm Modelle anzuschauen, und zu bearbeiten. Particle Editor: Mit diesem Tool können 3D Partikel Systeme erstellt und bearbeitet werden. Das Format der Partikel Systeme ist.tvp. SfxE: Der Simple Fx Editor erlaubt das erstellen von HLSL Shadern und beinhaltet einige Features, wie z.b. Syntax Highlighting. Sobald ihr das TV3D SDK 6.5 heruntergeladen habt können wir anfangen. Das Grundgerüst: Startet ein neues Projekt und erstellt einen Verweis auf die MVT3D65.dll. Idealerweise könnt ihr noch einen Resource Ordner im Solution Explorer anlegen, in den ihr dann später alle Ressourcen hineinlegen könnt (Modelle, Texturen, etc.). Nun sollte euer Solution Explorer in etwa so aussehen:

Da die Truevision3D Engine keine Game Klasse wie das XNA Framework bietet, müssen wir die Game Loop selbst schreiben, dazu werden wir eine einfache Game Klasse erstellen. public abstract class Game public Form Form get; protected set; public TVEngine Engine get; protected set; public Game(Form form) this.form = form; Engine = new TVEngine(); Form.Load += new EventHandler(form_Load); Form.SizeChanged += new EventHandler(form_SizeChanged); Application.Run(Form); void form_sizechanged(object sender, EventArgs e) //Sobald die Größe des Fensters geändert wurde, //müssen einige Änderungen vorgenommen werden. Engine.ResizeDevice(); void form_load(object sender, EventArgs e) //Sobald die form fertig geladen ist, fangen //wir mit unserem game an... Form.Show(); Initialize(); Run(); private void Run() //Die Game Loop while (Form.Visible) Update(); Draw(); //Damit die Windows Events noch ausgeführt werden //(Fenster verschieben, etc.) Application.DoEvents(); //Räumt alles wieder auf. Engine.ReleaseAll(); Engine = null; public abstract void Initialize(); public abstract void Update(); public abstract void Draw();

Wie ihr seht verwenden wir ein TVEngine Objekt, dies ist eigentlich eine der wichtigsten Klasse der Engine und erlaubt beispielsweise das resizen des Devices. Die erste Anwendung: Nun wollen wir doch mal eine kleine Anwendung mithilfe unserer Game Klasse schreiben, dazu erstellen wir eine MyGame Klasse und leiten diese von Game ab: public class MyGame : Game public MyGame(Form form) : base(form) public override void Initialize() //Die Log Datei //(hierein werden Debug Informationen, etc. geschrieben) Engine.SetDebugFile("debug.txt"); //Hier liegen alle Resourcen Engine.SetSearchDirectory("Resources/"); //Verknüpft das Fenster mit dem Device Engine.Init3DWindowed(Form.Handle); public override void Update() public override void Draw() Engine.Clear(); //Hier kommt später der Code zum zeichnen... Engine.RenderToScreen(); Jetzt passen wir nur noch die Main Methode an: public static void Main() Game game = new MyGame(new Form() Width = 800, Height = 600, Text = "TV3D Test", MinimumSize = new System.Drawing.Size(300, 300) ); Wenn ihr nun die Anwendung startet, solltet ihr in etwa dieses Resultat bekommen:

2D Ausgaben: Bisher haben wir noch nichts manuell gerendert, dies wollen wir jetzt nachholen indem wir einen einfachen Sprite rendern. Dazu müssen wir wissen, dass Truevision3D von vielen Objekten nur die ID in Form eines Integeres speichert (z.b. Texturen). Fügt eurem Projekt nun unter Resources eine Textur hinzu und vergesst nicht einzustellen, dass die Textur in die Output Directory kopiert wird! Um Texturen zu laden benötigen wir die TVTextureFactory Klasse und für das Rendern von Sprites die TVScreen2DImmediate Klasse, also legt die entsprechenden Variablen an. Für die Textur merken wir uns nun auch eine ID als int. screen2d = new TVScreen2DImmediate(); texfactory = new TVTextureFactory(); //Textur einfach laden, da wir bereits die //"Search Directory" gesetzt haben idtexture = texfactory.loadtexture("mytexture.png");

Das Zeichnen dürfte euch nun aus XNA bekannt vorkommen: public override void Draw() Engine.Clear(); screen2d.action_begin2d(); screen2d.draw_sprite(idtexture, 20, 20); screen2d.action_end2d(); Engine.RenderToScreen(); Ihr könnt die TVScreen2DImmediate Klasse also so wie einen Spritebatch aus XNA verwenden. Abschluss: Ihr habt nun die Grundlagen gelernt, wie man eine einfache Truevision3D Szene initialisiert und Sprites zeichnet. Doch die Truevision3D Engine kann noch viel mehr, sie beinhaltet KI und eine Physik Komponente, die auf der Newton Engine basiert!