Wir schreiben den Tag 6 nach Xuhus Geburt …

ganz Stuttgart ist vom Schlaf besetzt, ganz Stuttgart? Nein! Ein von einem unbeugsamen Nerd bevölkertes Studio leistet unerbittlich Widerstand…

Es geht so langsam in die heiße Phase, ich weiß nich mehr so genau, ob ich gestern einen Entrag geschrieben habe, oder ob ich das vergessen hab O.o

Auf jeden Fall habe ich.

0) Mal ne Stunde in mein Raumschiff gesteckt: Jetzt hat es Texturen und man sieht den Teddy im Cockpit.

myShip

Gut, dass Teddy ein Teddy ist, sonst würde er wahrscheinlich im Weltraum ersticken in seinem Cabrio.

1) Die Explosionen optimiert, damits nich so stockt. Jetzt werden nich jedesmal neue Particlesysteme ins Leben gerufen, sondern, die alten Explosionen “wiederbelebt”. Das verringert den Zugriff auf die Textur und klappt ganz herrvorragend und wenns mal zu viele Explosionen werden werden einige einfach nicht mehr gezeichnet, was man dann wahrscheinlich eh nicht merkt, weil schon alles voll ist :)

2) Das Schild des Spielers kann sich jetzt aufladen und die Recoveryfrequenz steigt mit steigendem Level des Spielers. Das soll er dann später selbst auswählen können, was er gerne steigern möchte. Quasi ein Skillsystem.

3) Ich habe meiner Hanimanengine eine Rauch Klassse gegönnt, diese ist zwar noch etwas unflexibel, aber was solls, das dann immernoch geändert werden. Auf jeden Fall hat mein Flieger jetzt endlich nen ordentlichen Antrieb.

4) Die Gegner können jetzt schießen. Jetzt kann auch der Spieler endlich sterben. :)

5) Alle Schüsse richten sich jetzt nach ihrer Flugrichtung aus. Das ging erstaunlich einfach, nach einigem Rechnen hatte ich folgende tolle Formel:

D3DXVECTOR3 normalisedDirection = H_nomalizeVector3(schussDir);

rotZ = atan2(normalisedDirection .y, normalisedDirection .x)

und mit rotZ rufe ich dann einfach meine Sprite Funktion auf.Jetzt zahlt sich aus, dass sich die Dinger drehen können 😀

6) Ich kann jetzt die Bildschirmkoordinaten der Maus in die 3DVector koordinaten meines Spieles Umwandeln, was zur Folge hat, dass man nun die Schussrichtung des blauen Lasers bestimmen kann.

Ausgerechnet hab ich das ganze in der Medienrechtvorlesung ( danke nochmal Käse für den Zettel )

ich musste nur das hier in die die WndProc einfügen und schon hat man die aktuelle Mousposition, immer wenn diese sich bewegt:

wobei 10 und 8 meine maximalen Vectorpositionen in X und Y sind:

g_SpaceStory->mouseXpos    = ((GET_X_LPARAM(lParam) * 20) / SCREEN_WIDTH) - 10;
g_SpaceStory->mouseYpos    = ((GET_Y_LPARAM(lParam) * (-16)) /SCREEN_HEIGHT) +8 ;

7) Ich hatte eine super Idee für meine Intro und habe das dann heute Nacht direkt gerender. Ich wills nich verraten, seht selbst:

Wer eine Ähnlichkeit mit einem Youtube Video erkennt hats erkannt :)

Einen Kommentar schreiben