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