 Allgemein  Speicherung der Informationen  Die Schiffsysteme › Die Struktur SShipType › Die Struktur SWeaponType  Laden aus der INI- Datei  Die Klasse.

Slides:



Advertisements
Ähnliche Präsentationen
Programme in C++.
Advertisements

Imperative Programmierung
Imperative Programmierung
Strukturen in C Spelz, Sievers, Bethke.
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Forschungszentrum caesar
Kapitel 6. Suchverfahren
Die Beschreibung von Bewegungen
Kapitel 4 Datenstrukturen
der Universität Oldenburg
Kollisionen erkennen Kollisions- und Schnittpunkttests auf Dreieckbasis Kollisions- und Schnittpunkttests auf Viereckbasis Einsatz von achsenausgerichteten.
VO2 Laden und Initialisieren der Sounds. Wir wollen Sounds in unsere Applikation laden Menü erweitern –um den Menüpunkt Sound –mit dem Identifier ID_ULTRIS_SOUND.
Grundlagen der Geometrie
Java: Grundlagen der Sprache
Polymorphie (Vielgestaltigkeit)
V AdresseWert public static void main(...){ int[] v; v=new int[2]; } Was veranlasst diese Anweisung im Arbeitsspeicher ? Es wird im Arbeitsspeicher.
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 10 Claudio Moraga; Gisbert Dittrich FBI Unido
Diskrete Mathematik I Vorlesung Arrays-
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Zusammenfassung Vorwoche
zur Vorlesung Neuronale Netzwerke
DVG Felder1 Felder. DVG Felder 2 Was sind Felder? Felder sind Reihungen aus endlich vielen Elementen gleichen Typs. Z.B.: Vektoren : (x.
Starrkörpereigenschaften
Term {abstrakt} alsText(){abstrakt} berechnen(Belegung){abstrakt} Zahl alsText() berechnen(Belegung) double wert Variable alsText() berechnen(Belegung)
Grundkonzepte Java - Klassendefinition
Java programmieren mit JavaKara
Wir haben gesehen Das Gerüst ist bei JavaKara fix vorgegeben
3D- Spieleprogrammierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Medienwiss./Medieninformatik AM3 Visuelle Programmierung I Referent: Janek Rudolf.
Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke.
Massenmittelpunkt, „Schwerpunkt“, Drehachsen und Trägheitsmoment
Skalare, Vektoren.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Frank Kameier 4. Vorlesung
Einführung in die Programmiersprache C 4
Informatik 1 Letzte Übung.
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Die Grundidee Funktionsaufruf Funktionsname (Kopf) Code der Funktion
7.1.9 Kardinalität von Beziehungen (1|15)
Arduino Kurs Abend 2.
Arrays / Felder Themen: Arrays / Felder / Vektoren Was soll das eigentlich? Erstellen von Arrays Arrays auslesen. Wie sie verwaltet werden.
Datentypen Überblick Datentypen Einfache / fundamentale Datentypen
Kurzvortrag Bestückungsautomaten
Unity 4.x Cookbook Softwaretechnologie II (Teil 2) - Maximilian Berndt.
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Breakanoid – Bälle & Blöcke Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Übung: Visuelle Programmierung I –
Das zweite Spiel Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.
1. Charakteranimation 2. PlugIns schreiben und laden Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung WS 2010/2011.
Vordefinierte Datentypen (1)
Sammlungsklassen Array.
Diskrete Mathematik I Vorlesung 2 Arrays.
Erweiterung bzgl. der Kardinalität. (1|9)
Java-Kurs Übung Besprechung der Hausaufgabe
Einführung in die Programmierung mit Java
Kapitel 3: Erhaltungssätze
Die Physikalischen Gesetze des Isaac Newton
Roboter-Programmierung
EIN NEUES ENSEMBLE- KLASSIFIKATIONSVERFAHREN Tim Schneider Rotation Forest.
Java Programme nur ein bisschen objektorientiert.
Ein Spiel mit der SDL - Teil I. Ein Spiel mit der SDL  kostenlose Bibliothek – Simple DirectMedia Layer Grafik darstellen Benutzereingaben abfragen Sounds.
Die gleichförmige Kreisbewegung
Felder in der Informatik
 Präsentation transkript:

 Allgemein  Speicherung der Informationen  Die Schiffsysteme › Die Struktur SShipType › Die Struktur SWeaponType  Laden aus der INI- Datei  Die Klasse tbObject › Position und Skalierung › Die kombinierte Transformationsmatrix › Die Physik kommt hinzu  Implementierung von tbObject › Variablen › Methoden › Rotation › Wirkung einer Kraft

 CIntro, CMain und CGame  CGalactica  6 Schiffarten › Verschiedene Waffensysteme

 3D- Modelle werden in separaten Dateien abgelegt › Wo sollen die Informationen hin?  INI- Dateien

 Effizienz des Systems  Effizienz steht im Verhältnis zu Schaden  Reparierungsrate  Position des Schiffes für Schadensberechnung genutzt werden  Wiederaufladefunktion

 SShipType beschreibt den Typ eines Schiffes › Name des Schiffes › Dateiname des 3D- Modells › tbModel* › max. Beschleunigung & max. Schaden › Reparierungsrate der Schiffssysteme und die Informationen zu den Waffen des Schiffstyps

struct SShipType { char acName[256]; // Name des Schiffstyps char acDesc[1024]; // Beschreibungstext char acModel[256]; // Name der Modelldatei tbModel* pModel; // Modell des Schiffstyps float fMass; // Masse float fMovementFriction; // Reibung bei der Bewegung float fRotationFriction; // Reibung bei der Rotation float fMaxHullDamage; // Schadenskapazität der Hülle float fHullRepairRate; // Reparierungsrate der Hülle float fMaxAccel; // Maximale Beschleunigung float fMaxAngularAccel; // Maximale Drehbeschleunigung float fMaxEngineDamage; // Schadenskapazität des Antriebs float fEngineRepairRate; // Reparierungsrate des Antriebs tbVector3 vEnginePos; // Relative Position des Antriebs float fMaxShieldEnergy; // Maximale Schildenergie float fMaxShieldReloadRate; // Wiederaufladrate float fMaxShieldDamage; // Schadenskapazität des Schildgenerators float fShieldRepairRate; // Reparierungsrate des Schildgenerators tbVector3 vShieldPos; // Rel. Position des Schildgenerators float fMaxSensorsDamage; // Schadenskapazität der Sensoren float fSensorsRepairRate; // Reparierungsrate der Sensoren tbVector3 vSensorsPos; // Relative Position der Sensoren int iNumWeapons; // Anzahl der Waffensysteme int aiWeaponType[8]; // Waffentypen (für jede Waffe eine Zahl) tbVector3 avWeaponPos[8]; // Relative Positionen der Waffensysteme SWeaponType* apWeaponType[8]; // Zeiger auf die Waffentypen float fMaxWeaponEnergy; // Maximale Waffenenergie float fWeaponEnergyReloadRate; // Max. Wiederaufladrate d. Waffenenergie tbVector3 vCockpitPos; // Position des Cockpits }; Listing 8.2 Die erste Version von SShipType - S.559

 Speicherort für Informationen eines Waffensystems › Laser-oder Raketenwaffe? z.B. BOOL bIsLaserWeapon › Dateiname des Projektilmodells - acProjectileModel[256] › float fMaxDamage & float fRepairRate › Projektil- Lebenszeit in sec. - float fProjectileLifetime › tbVector3 vProjectileStartPos z.B. (0,0,10) › fMinReloadTime, fDamageToHull › fEnergyPerShot, fDamageToShields › fHitForce

 Initialisierung in CGame::Init › CGame::LoadShipTypes & CGame::LoadWeaponTypes › Welche Informationen hier geladen werden sollen, legt BOOL bFullLoad fest. › CGame-Erweiterung um SShipType m_aShipType[256] und SWeaponType m_aWeaponType[256] › Wie viele Schiffs- und Waffentypen haben wir? › For- Schleife durchsucht INI nach NumShipType s und NumWeaponTypes › Zum Auslesen von Schlüsseln aus einer INI- Datei gibt es die Methoden ReadINIString, ReadINIInt, ReadINIFloat, ReadINIVector3 und ReadINIColor

 Bild S562 ~ CGame::LoadShipTypes

 Rotation bisher: Drehung um die x-, y- und z- Achse.  Neuer Ansatz: Das Raumschiff dreht sich stets um die eigene relative Achse. › Achsenvektoren

 Die Achsenvektoren liefern nur eine Orientierung des Objekts; um genauer zu werden fehlen die Angaben zu Position und Skalierung › Position bezieht sich hier auf das absolute Koordinatensystem

 Achsenvektoren, Position und Skalierung des Objekts sollten durch eine Transformationsmatrix kombiniert werden.  tbmatrixTranslation  tbMatrixScaling  Skalierungsmatrix*Rotationsmatrix*Translationsm atrix (Kapitel 2)

 tbObject-Erweiterung durch Bewegungs- und Rotationsvektor  Reibungsfaktor für Bewegung und Rotation › Ist z.B. der Reibungsfaktor von Bewegungs 0.8, verliert das Objekt 20% seiner Geschwindigkeit  Radius eines Objekt wird für die Berechnung der Wirkung einer Kraft auf das Objekt benötigt.

 Variablen  5 Vektoren des Typs tbVector3 : › m_vPosition, m_vXAxis, m_vYAxis, m_vZAxis & m_vScaling  tbVector3 m_vVelocity  tbVector3 m_vRotation  Vier float-Werte: m_fMass, m_fRadius, m_fMovementFriction und m_fRotationFriction  Transformationsmatrix: tbMatrix m_mMatrix ;  die invertierte Version m_mInvMatrix.

 tbObject::Update  Umrechnung von Koordinaten: › AbsToRelPos › RelToAbsPos › AbsToRelDir › RelToAbsDir  tbObject::Move  tbObject::Align & tbObject::LookAt  tbObject::ApplyForce

 tbObject::RotateRel  tbObject::RotateAbs

 tbObject::ApplyForce › Bild S.572/3

Danke für die Aufmerksamkeit!