Systemprogrammierung > Projektgruppe: Alexander Schesler, Hristo Matev.

Post on 05-Apr-2015

113 views 0 download

Transcript of Systemprogrammierung > Projektgruppe: Alexander Schesler, Hristo Matev.

SystemprogrammierSystemprogrammierungung

<< Realisierung eines 3D-Spiels mittels >>

<< Lightwave3D und Java3D >>

Projektgruppe:

Alexander Schesler, Hristo Matev

SpielbeschreibungSpielbeschreibung

Erstellung eines virtuellen 3D- Raums mit Hindernissen

Roboter bewachen eine Waffe Spieler versucht diese zu finden und

unschädlich zu machen Spiel ist beendet, wenn Waffe unschädlich

ist, oder Spieler vom Wachroboter erfasst

AufgabenbereichAufgabenbereich

Raummodellierung Texturierung des virtuellen 3D- Raums Wachrobotersteuerung ( Computerseite ) Sounds im Spiel Spielschwierigkeitsgrade Netzwerkspiel / „Multiplayer“ , „Client“ -Teil Optimierung der Szene Schluss-Video mit LW

RaummodellierungRaummodellierung 1 1

4 Wände - die Grenzen des Spielfeldes 4 Wände - die Seitehintergrund eine Untergrundfläche - Boden 8 flache Flächen - Hindernisse ein Gebäude - Hindernis eine Kugel - Sonne mit Lichteffekten

RaummodellierungRaummodellierung 2 2 Flächen-Objekte:

QuadArray qa = new QuadArray(4, QuadArray.COORDINATES );

qa.setCoordinate (0, new Point3f (-100.0f, -3.0f, -100.0f ));

qa.setCoordinate (1, new Point3f (-100.0f, -3.0f, 100.0f ));

qa.setCoordinate (2, new Point3f (100.0f, -3.0f, 100.0f ));

qa.setCoordinate (3, new Point3f (100.0f, -3.0f, -100.0f ));

Sonne-Objekt: Sphere sp = new Sphere (1.4f, Sphere.GENERATE_NORMALS |

Sphere.ENABLE_APPEARANCE_MODIFY,a);

PointLight pl = new PointLight (bound, lPos);

Appearance a = new Appearance ();

Material mat = new Material ();

Texturierung Texturierung des 3D- Raumsdes 3D- Raums

QuadArray qa = new QuadArray(4, QuadArray.TEXTURE_COORDINATE_2);

qa.setTextureCoordinate (0,new Point2f (0.0f, 1.0f));

qa.setTextureCoordinate (1,new Point2f (0.0f, 0.0f));

qa.setTextureCoordinate (2,new Point2f (1.0f, 0.0f));

qa.setTextureCoordinate (3,new Point2f (1.0f, 1.0f));

2D Texturen für alle Flächen-Objekte:

Wachrobotersteuerung 1Wachrobotersteuerung 1

Steuerung durch Fuzzy-Regler

Wissensbasis

Lingw. Variablen und Terme

z.B Abstand

Fuzzy-Regeln:

if .... then....

Fuzzy-

Inferenz

Defuzzy-

fizierung

Fuzzy-

fizierungY

x1x2x3

Wissensbasis

FS

Regler Komponente

Wachrobotersteuerung 2Wachrobotersteuerung 2

Wachrobotersteuerung 3Wachrobotersteuerung 3

Implementierung

private native double getFuzzyAnswer (String f, double [] p);

System.loadLibrary (libName);

rotAngle = (new FuzzyAnswer ().getFuzzyAnswer (fisModule, distace))

target.getTransform (targetTransform);

rotateRob.rotY (Math.toRadians (rotAngle));

targetTransform.mul (rotateRob);

target.setTransform (targetTransform);

„„Sounds“ im SpielSounds“ im Spiel

BacktroundSound PointSound ConeSound Soundspace

BackgroundSound bgSound = new BackgroundSound();

MediaContainer mc = new MediaContainer ();

mc.setURLString (fileName);

mc.setCacheEnable (true);

bgSound.setEnable (true);

SpielschwierigkeitsgradeSpielschwierigkeitsgrade Bewegungsgeschwindigkeit der Roboter Fuzzy-Regler Anzahl Roboter

switch (severity)

{

case 1:

rotAngle = myFis.getAngle (dist, fisModule2);

speedRobo = speed = (Math.abs (r.nextInt () % 100));

nRobo = 6;

break;

...

}

Szenegraph 1Szenegraph 1

BG

ViewBG

BGBGBGBG

Locale

Virtual Universe

createSceneLand createSceneBgWalls

TG

sLand

S

sWall1

S

TG

sWall1

S

sWall1

S

sWall1

S

TG TG

Sphere

tgBgWalls(Seitenhintergrund)

tgLand(Grundfläche)

bSound sScape pl bSound

tgSound(Hintergrundmusik)

createSceneSound createSceneSuncreateScenePlay

Siehe unten tgSun

(Kugel mit Licht)

BackgroundSound

SoundScape PointLight

AmbientLight

Szenegraph 2Szenegraph 2

TG

S

tgWalls(Spiel-grenzen)

createScenePlay

tgBg (Hintergrund)

tgRobot(Roboter)

BG

TG TG TG TG

S S S S S S S S S S

Locale

Virtual Universe

tgObstacle(Hindernisse)

tgBuild(Gebäude)

...

sWallssRobot(Roboter-Objekt)

sBuild(Gebäude-Objekt)

sO2sO1 sO3 sO5 sO6 sO7 sO8sO4

KlassendiagrammKlassendiagramm

PlayGround

Applet{abstact}

MyShapes

MyLight

MySound

MyIntro

FuzzyAnswer

MyFiles

PickObstacle

Behavior{abstact}

Schnittstelle zu c-Dateien (dll)

Enthält main ()

MediaContainer BackgroundSound

AuralAttributes

Thread

TerrainFileReader

QuadArray

Schluss-Video mit LWSchluss-Video mit LWTextszene Raumszene

WeltraumszeneTerrainszene

Entwicklungszeit Entwicklungszeit Aufgabenteil Gesamtzeit / hAnimation 90,6Programm 61,2Dokumentation 15,0  166,8

  Rendering - Zeit Rendering - Zeit Szene Frame /s # Frames Gesamtzeit / hTextszene 3 300 0,25Raumszene 45 1501 18,75Terrainszene 150 1971 82,0

Weltraumszene 180 800 40,0  141,0