Laserfeuer im D Raum

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Bob

Betreff: Laserfeuer im D Raum

BeitragSo, Jun 06, 2004 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,

hier mal ne Frage wie Ihr in eurem 3D SpaceShooter das Abfeuern von Laserkanonnen simuliert.
Ich bitte um Anregungen.

Mein Ansatz.
ich ermittle mit
"CameraProject camera, EntityX(ship), EntityY(ship), EntityZ(ship)"
die Position von Ship und Target und male anschließernd mit einer simplen Line Methode einen Linie zu den beiden Objekten.
Die Linie wird ein paarmal wiederholt damit sie nicht nur in einem Frame zu sehen ist.
Die Farbe wechselt auch ein bisschen zwischen rot und gelb.
Dabei ensteht der gewünscht Effekt das ein Laserstrahl ja ein Licht ist
und über die komplette Distanz sichtbar ist (StarTrek like).
Ich möchte auf jedenfall vermeiden das es wie in StarWars aussieht wo abgehackte Strahlen umherschwirren. (Vielleicht für meine Tachion Kanonen oder Projektil Waffen)

Ich habe jetzt schon mehrfach gelesen das die Line Methode langsam sein soll. Desahalb die Frage der nach Anregungen.
Zur Zeit experementiere ich mit einem Sprite das auf die Länge der Distanz zwischen beiden Objekten skaliert wird (X Skalierung).
Als Textur wird eine simple 4x4 große Bitmap verwendet mit gelb,rot,rot,gelb Streifen.
Das Sprit soll immer einen Y Skalierung von 4 Pixeln haben.

Alternativen wären cool.

Gruß bob
 

INpac

BeitragSo, Jun 06, 2004 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
hi.
erst mal ein lob: du verhälst dich im gegensatz zu vielen anderen neuen vorbildlich, du schilderst deine probleme genau, und übertreibst nicht mit tonnen von smilies in einem post usw. danke Smile

würde das so machen:
du erstellst für jede "schusslinie" 2 cylinder. einen davon setzt du auf blendmode 3, und skalierst ihn ein wenig dicker als den anderen. Beide färbst du zB rot ein. Die Segmentanzahl der Cylinder kannste getrost niedrig halten.
So.
Wenn du die Positionen von start und Ende der Linie hast, rechnest du die Durchschnittsposition für alle Achsen aus, also (x1+x2)/2 etc. An dieser Stelle wird werden die 2 Cylinder, die du am besten mit Addmesh zu einem Mesh zusammenhängst, positioniert. Zum ausrichten kannste jetzt einfach pointentity schuss,target benutzen.

Bi mir nicht mehr sicher, wie das mit der Objekt achse eines Cylinders, der von B3D erstellt wurde ist, kann nämlich sein, dass durch pointentity der schuss falsch ausgerichtet dann ist.
Verwende dann entweder RotateMesh um die Achse des Schussmeshes zu drehen, dann klappt das mit Pointentity. Oder du machst eben du drehst einfach nach pointentity den schuss nochmal um 90 Grad an der X Achse...

einfach mal ein bissl ausprobieren, hoffe das klappt.

Bob

BeitragSo, Jun 06, 2004 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo INpac,

danke für das Lob Embarassed (Doch ein smilie)
Fakt ist das man nur eine gute Antwort erhält wenn man die Frage möglichst knapp aber präzise stellt.

Zu deinem Vorschlag mit den Zylindern.
Das werde ich testen. Hört sich nicht nur gut sondern irgendwie auch "richtig" an.
Wen mann dann vielleicht auch noch mit ein bischen Texturesn Spielt erzielt man wohl einen sehr schönen Laser.
Danke.

Gruß Bob

- repariere nichts was nicht kaputt ist -

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group