komisch meshs drehen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

dabigflow

Betreff: komisch meshs drehen

BeitragFr, Jan 14, 2011 1:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,
ich probier gerade ein Rennspiel und bräuchte eure Hilfe.
Ich habe 2 Funktionen zur Kontrolle von 2 Meshs, Die Funktionen sind identisch bis auf die Tasten auf
welche sie reagieren.
Das drehen(turnentity) des ersten Meshs funktioniert ohne Probleme aber beim zweiten dreht es den Mesh
wie als hätte er einen Drehpunkt das heißt wenn man links drückt dreht es nicht den mesh auf der stelle
sondern bewegt es noch in die jeweilige Richtung.
Wenn ich Kameras an die Funktionen übergebe funktioniert es problemlos.
ich hab es schon mit 2 Types probiert und auch mit 2 einfachen variablen
An den Meshs kann es auch nicht liegen.
Hier die 2 Funktionen

Zitat:
Function object_key_control( fahrzeug )

EntityParent fahrzeug, 0
;Trägheit fürs Vor fahren
;-----------------------------------------------
If KeyDown( up_key )= True Then

If (speed2# < maxspeed#) Then
speed2# = speed2# + 0.01
Else
flag=1 ;Später mit return
EndIf
MoveEntity fahrzeug, 0, 0, speed2#
Else
If (speed2# > 0.00) Then speed2# = speed2# - 0.01
MoveEntity fahrzeug, 0, 0, speed2#
EndIf
;Trägheit fürs Zurück fahren
;----------------------------------------------
If KeyDown( down_key )=True Then
If (zurueck2# > maxzuruck#) Then
zurueck2# = zurueck2# - 0.01
Else
flag = 2
EndIf
MoveEntity fahrzeug, 0, 0, zurueck2#
Else
If (zurueck2# < 0.00) Then zurueck2# = zurueck2# + 0.01
MoveEntity fahrzeug, 0, 0, zurueck2#
EndIf


;restliche Bewegungstasten Tasten
;----------------------------------------------
If KeyDown( left_key )Then TurnEntity fahrzeug, 0, 2, 0
If KeyDown( right_key ) = True Then TurnEntity fahrzeug, 0,-2, 0
If KeyDown( right_ctrl) =True Then Feuer(fahrzeug)


End Function

; Nun die Trägheit nach vorn und Zurpck bzw die Steuerung mit den "WASD" Tasten
Function object_key_control_2( obj )


EntityParent obj,0
;Trägheit fürs Vor fahren
;-----------------------------------------------
If KeyDown( W_key )= True Then

If (speed# < maxspeed#) Then
speed# = speed# + 0.01
Else
flag=1
EndIf
MoveEntity obj, 0, 0, speed#
Else
If (speed# > 0.00) Then speed# = speed# - 0.01
MoveEntity obj, 0, 0, speed#
EndIf
;Trägheit fürs Zurück fahren
;----------------------------------------------
If KeyDown( S_key )=True Then
If (zurueck# > maxzuruck#) Then
zurueck# = zurueck# - 0.01
Else
flag = 2
EndIf
MoveEntity obj, 0, 0, zurueck#
Else
If (zurueck# < 0.00) Then zurueck# = zurueck# + 0.01
MoveEntity obj, 0, 0, zurueck#
EndIf


;restliche Bewegunggsstasten Tasten
;----------------------------------------------
If KeyDown( A_key ) = True Then TurnEntity obj, 0, 2, 0
If KeyDown( D_key ) = True Then TurnEntity obj, 0,-2, 0
If KeyDown( Space) =True Then Feuer(obj)

End Function

danke schonmal für die Hilfe
 

BIG BUG

BeitragFr, Jan 14, 2011 1:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Natürlich liegt das an den Meshes(bzw. am 2. Mesh), dieser hat seinen Nullpunkt schlicht nicht in der Mitte.
Einfach die Meshes mal vertauscht an die Funktionen übergeben, dann wird es bei der ersten Funktion nicht klappen.

Am besten ist es, das direkt im 3D-Modeller zu korrigieren.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

ToeB

BeitragFr, Jan 14, 2011 2:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Außerdem geb ich dir noch zwei Tipps :

1. Mach aus den Beiden eine Funktion und als Parameter welche Steuerung benutz werden soll (0=Pfeiltasten, 1=WASD)

2. Nimm lieber eine Globale Variable für das "Fahrzeug", so muss es nicht übergeben werden.


mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

BladeRunner

Moderator

BeitragFr, Jan 14, 2011 7:42
Antworten mit Zitat
Benutzer-Profile anzeigen
...und das mit der globalen Variable vergiss schnell wieder, denn eine Datentrennung ist eine sinnvolle Sache.

Bitte nutze für Code die Codetags, die werden dann nämlich zu einer schönen Box, macht das lesen leichter Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

dabigflow

Betreff: mehr

BeitragSa, Jan 15, 2011 17:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich hab es 2mal mit dem gleichen Mesh versucht dabei trat das Problem immer nur bei einem der beiden auf.
Dann dürfte es doch eigentlich nicht an den Meshs liegen oder?
Ich habe es auch mal mit
Code: [AUSKLAPPEN]
createsphere()

versucht indem ich einfach die anstatt den fahrzeugen übergeben habe dabei enstand das gleiche Problem.
Eine Kugel funktionierte normal die andere wieder mit so einem Drehpunkt
 

BIG BUG

BeitragDi, Jan 18, 2011 0:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann zeig doch mal den kompletten Code mit Spheres. Hast Du in Deinem Code irgendwo Mesh-Befehle drin?
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

dabigflow

BeitragMi, Jan 19, 2011 1:15
Antworten mit Zitat
Benutzer-Profile anzeigen
ah danke also ein teilproblem war auf jedenfall
Code: [AUSKLAPPEN]
PositionMesh

hab nur leider grad keine zeit mehr auszuprobieren.
Ich werde später dann posten ob es auch mit den autos geklappt hat.
danke
 

dabigflow

Betreff: dankeschön

BeitragFr, Jan 21, 2011 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey ich hab es jetzt auch mal mit den Autos ausprobiert und es funktioniert Very Happy
Das erklärt auch einige komische berechnung von anderen Funktionen.
danke Very Happy
~closed

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group