Abprall

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Blackside

Betreff: Abprall

BeitragSo, Mai 03, 2009 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Ich hatte vor eine kleine Waffe zu programmieren, die ähnlich des Minenwerfers von Quake 3 ist.
Sie soll in einen Bogen eine Mine werfen, die überall abprallt.
wie z.B. hier zu sehen: http://www.youtube.com/watch?v=4XqAPLsQeaI

Das Problem ist, das ich es nicht schaffe, das sie so fliegt und auch abprallt.
Hier sollte eigentlich eine Signatur stehen!

Holzchopf

Meisterpacker

BeitragSo, Mai 03, 2009 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
ärmster
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Blackside

BeitragSo, Mai 03, 2009 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
-.-
könntet ihr bitte so nett sein und mir bei diesen Problem helfen?
und was soll das eigentlich? das ist nun wirklich ziemlich Offtopic...
Hier sollte eigentlich eine Signatur stehen!

sirokuhl

BeitragSo, Mai 03, 2009 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du richtige Hilfe möchtest, dann musst du schon etwas gezielter fragen. Schreib doch mal zB., wie weit du selber dabei gekommen bist, zeig deine Problemstellen im Code oder was weiß ich.
Sonst wird dir hier keiner wirklich helfen können.

Blackside

BeitragSo, Mai 03, 2009 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay...
Also, nicht wundern das es nicht mit Types gemacht ist, man soll nämlich nur 1ne Mine schießen können Wink

Diese Funktion resetet die Mine bei Linksklick, mine_dummy ist ein Pivot wessen Position mit Camerapick ermittelt wird:

Code: [AUSKLAPPEN]
Function CreateMine()
   PositionEntity mine,EntityX(cam),EntityY(cam),EntityZ(cam),1
   PointEntity mine,mine_dummy
   ShowEntity mine
   mine_show = 1
   mine_zacc = 1
   mine_yv = .2
End Function


Und hiermit wird die Mine dann geupdatet:
Code: [AUSKLAPPEN]
Function UpdateMine()
   mine_yv = mine_yv*.98
   
   MoveEntity mine,0,0,mine_zacc
   If EntityCollided(mine,2) = 0 Then
      TranslateEntity mine,0,mine_yv,0
   Else
      col = CountCollisions(mine)
      For i = 1 To col
         AlignToVector mine,-CollisionNX(mine,i),-CollisionNY(mine,i),-CollisionNZ(mine,i),3
      Next
   EndIf
   mine_zacc = mine_zacc*.98
End Function

Nun, das ist einer meiner Versuche die Mine abprallen zu lassen, doch leider schaffe ich es einfach nicht Sad
Könnt ihr mir sagen, wie ich das machen könnte?
Hier sollte eigentlich eine Signatur stehen!
 

mDave

BeitragSo, Mai 03, 2009 14:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Mh... es wurde zwar schon sehr oft erwähnt, aber die Forensuche ist einfach göttlich.
Einmal Abprall eingegeben und schwupp schon ist die Lösung da:

https://www.blitzforum.de/foru...ht=abprall

Um den Inhalt kurz zusammenzufassen:
Du musst die Achsenwerte invertieren, wenn das Objekt die Wand berührt.
Dann dreht sich das Geschoss um und fliegt in eine Richtung á la Einfallswinkel=Ausfallswinkel

Mfg mDave

Holzchopf

Meisterpacker

BeitragSo, Mai 03, 2009 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hat er ja Rolling Eyes

Ich glaube aber, dass du die Normalen der Wand nehmen müsstest (du nimmst atm diejenigen der Mine)
Ausserdem müsstest du nach dem Neuausrichten nochmals eine Verschiebung durchführen, sonst kollidiert die Mine beim nächsten Update immernoch und sie wird wieder neu ausgerichtet... (Wenn ich mich nicht irre)

mfG

PS: Wegen vorhin: Du hast einfach keine Frage gestellt, dann kannst du auch nicht erwarten, dass eine Antwort kommt Wink

Edit: Ups, die Verschiebung tätigst du ja schon, hab zu flüchtig drübergeschaut Embarassed
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group