Laserschüsse(mal wieder)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

dont_know_to_use

Betreff: Laserschüsse(mal wieder)

BeitragSo, Mai 29, 2011 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
Auf meiner Suche hier im Forum habe ich viele Threads wie "Wie erstelle ich Laserstrahlen" oder "Kollision mit Laser, wie?" gefunden und ich bin mit meinen Lasern auch soweit zufrieden, habe allerdings ein Problem: Meine Laser fliegen direkt nach vorne von der Kamera weg, da die Laser an der Position der Camera mithilfe von EntityX() etc. erstellt werden, allerdings bewegen sich die Laser mit der Kamera mit, wenn ich also meine Kamera nach rechts drehe, drehen sich die Laser mit mir, bzw. wenn ich meine Kamera bewege, dann bewegen sich die Laserschüsse mit mir ...
Wie kann ich es also schaffen, dass die Laser zwar an der Stelle der Kamera erstellt werden, aber sich unabhängig davon bewegen?

count-doku

BeitragSo, Mai 29, 2011 12:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

du scheinst die Schüsse ja immer wieder neu auszurichten Wink
Entweder machst du das nur beim Abschuss, oder
du gibst ihnen beim Erstellen als Parent das Schiff,
bewegst sie ein Stück nach vorne und löst sie dann mit EntityParent.

Z.B.:
BlitzBasic: [AUSKLAPPEN]

;Funktion wo die Schüsse erstellt werden
NewSchuss=CreateNewSchuss(parent) ;Schuss dreht und positioniert sich automatisch dahin wo parent ist
MoveEntity NewSchuss,0,0,5 ; Ein Stück aus dem Schiff rausbewegen (so wegen dem Aussehen)
EntityParent NewSchuss,0 ; Schuss vom Schiff lösen
;- - - -
;Mainloop
;Danach nurnoch in der Hauptschleife mit
MoveEntity Schuss,0,0,5 ; Nach vorne bewegen.
;- - - -


Hoffe ich konnte helfen, sonst kannst es dir auch in B3D\Samples\mak\castle\ nochmal ansehen...

lg,
count-doku
 

dont_know_to_use

BeitragSo, Mai 29, 2011 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Wunderbar, es klappt. Danke Smile

EDIT: Neues Problem.
Ich richte meine Laser so aus:
Code: [AUSKLAPPEN]
PositionEntity laser/mesh,EntityX(cam),EntityY(cam)-1,EntityZ(cam)+1
RotateEntity laser/mesh,EntityPitch(cam),EntityYaw(cam),EntityRoll(cam)

Wenn ich das "-1" und "+1" bei PositionEntity weglasse, funktioniert es perfekt, sieht aber doof aus, weswegen ich die Laser unter der Camera erscheinen lasse. Wenn ich meine Kamera nun drehe und schieße, dann werden die Laser an einer andere Position erstellt, aber noch relativ zur Kamera.

count-doku

BeitragSo, Mai 29, 2011 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Erst drehen, dann setzen?
 

dont_know_to_use

BeitragSo, Mai 29, 2011 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Schon probiert, hilft allerdings nichts. Surprised

skey-z

BeitragSo, Mai 29, 2011 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist die Kamera vielleicht ein Childobjekt eines anderen?, dann muss du bei den Positionsabfragen, die globale Position abfragen entityY(cam,1)
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

count-doku

BeitragSo, Mai 29, 2011 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
So habe ein wenig rumprobiert,
es liegt dadran, dass PositionEntity absolute Koordinaten/Winkel nimmt.
Verwende für die Verschiebung:
BlitzBasic: [AUSKLAPPEN]
RotateEntity Schuss,EntityPitch(Player),EntityYaw(Player),EntityRoll(Player)
PositionEntity Schuss,EntityX(Player),EntityY(Player),EntityZ(Player)
MoveEntity Schuss,0,-1,1


Und am Besten machst du die Kolli vor dem Positionieren mit HideEntity aus und danach mit
ShowEntity wieder an, dann kommts nicht zu unerwünschten hängern.

mfg,
count-doku
 

dont_know_to_use

BeitragSo, Mai 29, 2011 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohja, danke count-doku. Nun funktioniert es wunderbar. Smile

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group