PickedTriangle

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

mDave

Betreff: PickedTriangle

BeitragDo, Feb 11, 2010 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute!
Ich habe mich in letzter Zeit an ein Rennspiel versucht.
Nun stehe ich vor dem Problem, dass sich das Fahrzeug dem Untergrund anpassen soll. Das Fahrzeug soll also seinen Pitch-Winkel verändern, damit es eine Paralelle zum Dreieck eines Meshes bildet, auf dem es steht.
Gut, habe ich gedacht, arbeite ich mal mit den Pickbefehlen und AlignToVector.

Aber der Debugger sagt mir "Entity does not exist"
Bah!

Hier die wichtigen Codeabschnitte:
Code: [AUSKLAPPEN]

Picked=EntityPick (R\Picker,5000)
PickedVer=PickedTriangle()

AlignToVector R\Craft,EntityX(PickedVer),EntityY(PickedVer),EntityZ(PickedVer),1,0.2


Der Entitypickmode ist gesetzt, habe allerdings keine Ahnung, was ich falsch gemacht habe.
Könnt ihr mir Gedankenstützen geben? Ich bin auf diesen Befehlsbereich noch recht unerfahren :O

Vielen Dank schonmal!

the FR3AK

BeitragDo, Feb 11, 2010 19:32
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/help/PickedTriangle

Wie man dort lesen kann, wird bei der Funktion PickedTriangle nur die ID des Triangles zurück gegeben und kein Entity Wink
 

mDave

BeitragDo, Feb 11, 2010 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, danke!

Gut, er macht jetzt keine Fehlermeldung mehr, allerdings richtet er sich nicht an der X-Achse aus :O

Silver_Knee

BeitragDo, Feb 11, 2010 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
wahrscheinlich musst du x,y und z koordinate des dreiecks noch Mittels TFormVector (oder Point^^) für dein Auto Konvertieren
 

mDave

BeitragFr, Feb 12, 2010 6:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Zumindest ändert das Auto jetzt seinen Winkel, danke!

Allerdings, lässt sich das Gefährt nicht mehr gescheit steuern. Und auch erscheint es mir so, als würde sich das Auto willkürlich ausrichten.

Könnt ihr in dem Code noch irgendwas fehlerhaftes entdecken?

Code: [AUSKLAPPEN]

Picked=EntityPick (R\Picker,5000)
TFormPoint PickedTriangle(),PickedTriangle(),PickedTriangle(),Level,0

AlignToVector R\Craft,TFormedX(),TFormedY(),TFormedZ(),1,0.1

   If KeyDown(R\KeySpeedUp) Then R\SpeedZ#=R\SpeedZ#+0.18
   If KeyDown(R\KeySpeedDown) Then R\SpeedZ#=R\SpeedZ#-0.06
   If KeyDown(R\KeyTurnRight) Then R\TurnY#=R\TurnY#-0.09
   If KeyDown(R\KeyTurnLeft) Then R\TurnY#=R\TurnY#+0.09
   
If EntityCollided (R\Craft,1)<>0 Then R\SpeedY#=0
If EntityCollided (R\Craft,1)=0 Then R\SpeedY#=R\SpeedY#+0.22

TurnEntity R\Craft,0,R\TurnY#,0

MoveEntity R\Craft,0,-R\SpeedY#,R\SpeedZ#


R\SpeedZ#=R\SpeedZ#*0.996
R\TurnY#=R\TurnY#*0.975

Silver_Knee

BeitragFr, Feb 12, 2010 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
TFormPoint PickedTriangle(),PickedTriangle(),PickedTriangle(),Level,0

Du übergibst als koordinaten den Index des Gepickten Triangles? Macht das sinn Wink?

Für dich könnte PickedNormal hilfreich sein. Das ist ein senkrechter Vektor zum gepickent dreieck. wenn du dich so drehst dass es in diesen vector zeigt müsste es weg vom dreieckt zeigen


===================

Nach dem du mir eine PN geschrieben hast mit deinem Code:

Ich hab erstmal deinen Picker (das entity von Entitypick in seinem Code) entfernt und durch ein simples Linepick ersetzt. Das reicht zunächst mal völlig aus.

Als nächstes hab ich meinen eigenen Ratschlag verwendet und AlignToVector mit den Normalkoordinaten, die (schande über mich) nicht PickedNormal heißen sondern PickedNX,Y,Z. Dann hab ich festgestellt dass Achse 3 eingestellt ist. Da ich keine Ahnung habe welche Achse was bewirkt zeigte sich Dass achse 1 für die schieflage und Achse 2 für berg und talfahrt zuständig ist. Dann noch etwas am Parameter rate gespielt damit es icht bei jedem Triangle Nen schlag gibt und das Objekt anders hängt und dann sahs eig ganz gut aus.
 

mDave

BeitragFr, Feb 12, 2010 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Es funktioniert!

Vielen vielen vielen besten Dank, Silver_Knee!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group