Fahrzeug Steuern?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Kevin

Betreff: Fahrzeug Steuern?

BeitragDo, Aug 26, 2010 23:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Tag,
Ich arbeite gerade an einer Anwendung in der man ein Fahrzeug steuern muss.

Aber ich kann Rumlaufen usw.

aber das fahrzeug kann ich nicht Fahren

Mein Fahrzeug ist eine .3ds Datei
und Die map auch.

mann soll auf der map Fahren Können.

ozzi789

BeitragFr, Aug 27, 2010 9:04
Antworten mit Zitat
Benutzer-Profile anzeigen
MoveEntity RotateEntity Float

Ein gutes Beispiel gibt es dort:
C:\Programme\Blitz3D\samples\mak\driver
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

PhillipB

BeitragFr, Aug 27, 2010 12:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Ich habe mich auch mal mit dem fahren von objekten auseinandergesetzt!
Guckt euch mal bitte den code an!
Code: [AUSKLAPPEN]
;Auto fahren

If KeyDown (200) Then
MoveEntity model, 0, 0, 1
EndIf

If KeyDown (207) Then
MoveEntity model, 0,0, -1
EndIf

If KeyDown (203) Then
TurnEntity model, 0, 3, 0
EndIf

If KeyDown (205) Then
TurnEntity model, 0, -3, 0
EndIf


Hat einer villt. eine idee wie man es amchen könnte das das Auto nur lenken kann sobalt es rollt also wie im echten Leben weil bei diesem code kann man das Auto auch bei 0 KmH zur seite drehen lassen!
Vielen Dank im vorraus Wink

mfg
PhillipB

BastianA

BeitragFr, Aug 27, 2010 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde das Auto mit einer Variable bewegen lassen, und wenn die 0,0 ist, kann man das Auto nicht lenken und je nach Geschwindigkeit ist die Lenkung weniger.
Code: [AUSKLAPPEN]

Global speed# = 0
Global lenkung# = 0

In der Hauptschleife:

Code: [AUSKLAPPEN]
MoveEntity Auto, 0, 0, speed#
TurnEntity Auto,0,lenkung#,0

If KeyDown (200) Then
speed# = speed# + 0.2
EndIf

If KeyDown (207) Then
speed# = speed# - 0.2
EndIf

If speed# = 0 Then
lenkung# = 0
EndIf

If speed# > 0 And speed# < 10 Then
lenkung# = 5
EndIf

If speed# > 10 And speed# < 20 Then
lenkung# = 4
EndIf


If speed# > 20 And speed# < 30 Then
lenkung# = 3
EndIf


If speed# > 30 And speed# < 40 Then
lenkung# = 2
EndIf


If speed# > 40 And speed# < 50 Then
lenkung# = 1
EndIf


If speed# > 50 And speed# < 60 Then
lenkung# = 0.5
EndIf


If speed# > 60 And speed# < 70 Then
lenkung# = 0.25
EndIf

skey-z

BeitragFr, Aug 27, 2010 12:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Das sollte man natürlich über variablen regeln
Code: [AUSKLAPPEN]

if speed# > 0 then
 steer = 15
endif

moveentity car, 0, 0, speed#
turnentity car, 0, steer#, 0
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

PhillipB

BeitragFr, Aug 27, 2010 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
@skey-z
Also wenn ich jetz gas gebe denn drecht sich das auto einfach nur noch ich kann nicht mehr lenken oder bremsen!
 

Kevin

BeitragFr, Aug 27, 2010 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab ein Problem mit der Lenkung...

CODE
Code: [AUSKLAPPEN]
Graphics3D 1024, 768, 32
SetBuffer BackBuffer()
AppTitle "Citaro Simulator"


Bus=LoadMesh("Bus\Mercedes-Benz\Citaro\Citaro.3ds")
Frontrad=LoadMesh("Bus\Mercedes-Benz\Citaro\kp.3ds")
Heckrad=LoadMesh("Bus\Mercedes-Benz\Citaro\kp.3ds")
PositionEntity Bus, 0, 0,0
Map=LoadMesh("Strecke\Oberlübbe\Map.3ds")
PositionEntity map, 0, 0,0
Skybox=LoadMesh("Bus\Mercedes-Benz\Citaro\Citaro.3ds")


licht = CreateLight (1 ,Bus)

Global speed# = 0
Global steer# = 0



Camera=CreateCamera(Bus)
PositionEntity camera,-0.758, 1.8214 , -7.3049
RotateEntity camera, 0, 180, 0
Licht = CreateLight()
RotateEntity Licht, 45,45,0
;AmbientLight 0,0,0


ground = CreatePlane(8)
tex = LoadTexture("Bitmaps/grass_1.jpg")
EntityTexture ground,tex
EntityPickMode ground,2      

While Not KeyHit (1)


If KeyDown(72)   Then
      MoveEntity camera,0,0,0.1
   EndIf
   
   If KeyDown(80)   Then
      MoveEntity camera,0,0,-0.1
   EndIf
   
   If KeyDown(75)   Then
      TurnEntity camera,0,1,0,0
   EndIf
   
   If KeyDown(77)   Then
      TurnEntity camera,0,-1,0,0
   EndIf


;Auto fahren

If KeyDown (200) Then
speed# = speed# + 0.001
EndIf

If KeyDown (208) Then
speed# = speed# - 0.001
EndIf

If KeyDown (205) And speed# > 0.001 Then
   If speed# < 20 Then
   steer# = steer# - 1
   EndIf
   If speed# > 20 Then
   steer# = steer# - 1
   EndIf
   If speed# > 40 Then
   steer# = steer# - 1
   EndIf
   If speed# > 60 Then
   steer# = steer# - 1
   EndIf
EndIf

If KeyDown (203) And speed# > 0.001 Then
If speed# < 20 Then
   steer# = steer# + 1
   EndIf
   If speed# > 20 Then
   steer# = steer# + 1
   EndIf
   If speed# > 40 Then
   steer# = steer# + 1
   EndIf
   If speed# > 60 Then
   steer# = steer# + 1
   EndIf
EndIf


MoveEntity Bus,0,0,speed#
TurnEntity Bus,0,0,steer#

RenderWorld
UpdateWorld
Text 0,0, speed#
Text 0, steer# ,0
Flip
Wend
End

ozzi789

BeitragFr, Aug 27, 2010 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau das ist das Problem, versuche es selbst herauszufinden, anstatt den Code abzuschreiben Wink

mfg ozzi
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

skey-z

BeitragFr, Aug 27, 2010 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
@PhillipB

Das ist ja auch nur ein Denkanstoß, den Rest solltest du durch ein wenig nachdenken selbst heraus bekommen, wenn du fertigen Code willst hast du dabei auch nicht viel gelernt.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

PhillipB

BeitragFr, Aug 27, 2010 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja schon kla xd
Bin halt noch anfänger und mit sachen leerlauf und sowas kenne ich mich noch ned so aus :S

mfg
PhillipB.

skey-z

BeitragFr, Aug 27, 2010 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hat nichts mit Leerlauf zu tun, einfach nur mit dem richtigen Einsatz von Variablen, wenn du beschleunigst muss du den Wert erhöhen, wenn du bremst verringern und wenn du bei 0 angekommen bist, geht halt gar nichts mehr.

Ich gehe natürlich nicht davon aus, das du Motorentechnik aus dem FF abrufen kannst lediglich ein paar Grundlagen sollte da vorhanden sein, da es zu unserem Alltag gehört.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group