Expecting EndIf

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

BastianA

Betreff: Expecting EndIf

BeitragFr, Jan 07, 2011 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahoi,
ich möchte mit folgendem Code ein 3D Objekt nach Tastendruck bewegen bis zu einer bestimmten Koordinate und einen Sound abspielen, und bei erneuten Tastendruck wieder zurück. Allerdings bekomme ich als Fehlermeldung "Expecting EndIF". Ich weiß nicht an was das liegt, was mache ich falsch?
Code: [AUSKLAPPEN]

...
door_1l_1 = LoadMesh("Typ-A\door.3DS", Metro)
PositionEntity door_1l_1, -1.0825, 1.6348, 0
...
TAuf = LoadSound ("Sounds\TAuf.wav")
TZu = LoadSound ("Sounds\TZu.wav")
...
While Not Keyhit (1)

If KeyHit(79) And EntityZ# (door_1l_1, 1) < 5 Then
MoveEntity door_1l_1 0,0,0.05
channelID3 = PlaySound (TAuf)
EndIf

If KeyHit(79) And EntityZ# (door_1l_1, 1) > 0 Then
MoveEntity door_1l_1 0,0,-0.05
channelID4 = PlaySound (TZu)
EndIf

...

mpmxyz

BeitragFr, Jan 07, 2011 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Schaue dir die Zeile genau an!
Was fällt dir auf?
Ich sehe dort, dass du Kommas vergessen hast.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer
 

Sterbendes Lüftlein

BeitragFr, Jan 07, 2011 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Text entfernt

BastianA

BeitragFr, Jan 07, 2011 13:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, es geht jetzt. Ich möchte allerdings 24 Türen öffnen, wie auf der Skizze. Je Wagen 6 Türen, mit je 2 Türflügeln. Heißt 48 Türflügel, wobei immer 12 Parent eines Wagens sind. Gibt es da eine einfachere Möglichkeit das zu bewerkstelligen, als so? Das Beispiel ist für einen Türflügel, geht auch, aber kann man das nicht irgendwie mit irgendwelchen Strukturen einfacher lösen?
Code: [AUSKLAPPEN]

If doors# > 1 And doors# < 2 And EntityZ# (door_1l_1, 1) < 5 Then
MoveEntity door_1l_1, 0,0,0.05
channelID3 = PlaySound (TAuf)
EndIf

If doors# < 1 And EntityZ# (door_1l_1, 1) > 0 Then
MoveEntity door_1l_1, 0,0,-0.05
channelID4 = PlaySound (TZu)
EndIf


user posted image

Xeres

Moderator

BeitragFr, Jan 07, 2011 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kommst du auf 48...? Aber ja: Struktur ist, was du brauchst. Tausend einzelne Variablen a lá "door_1l_1" helfen dir nicht weiter.
Types - Jeder Waggon als ein Objekt mit fields für die Türen / (noch besser: Blitzarray)
BlitzBasic: [AUSKLAPPEN]
Type TWaggon
Field Obj ;*** Waggon Mesh
Field Door[6] ;*** Sechs Türen
End Type

Am besten schaust du dir ein paar Type-Tutorials an.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

BastianA

BeitragFr, Jan 07, 2011 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe jetzt alle Türen in 2 Verschiedene .3ds gespeichert, aber erstmal gehts mir ums das Eine. Die Tür muss -0.04 m nach X und 1m nach +Z verschoben werden. Allerdings wenn ich die Taste drücke, bewegt sich meine Tür 90Grad entgegen die Metro, die Türen sind allle Childs von Metro.

Code: [AUSKLAPPEN]

doors1 = LoadMesh("Typ-A\doors1.3DS", Metro)
PositionEntity doors1, 0, 0, 0

TAuf = LoadSound ("Sounds\TAuf.wav")
TZu = LoadSound ("Sounds\TZu.wav")

While Not Kyyhit(1)

If KeyHit(79) Then
doors# = doors# + 1
EndIf

If doors# = 1 Then
If EntityX# (doors1, 1) < -0.4 Then
MoveEntity doors1, -0.01,0,0
EndIf
If EntityZ# (doors1, 1) < 1 Then
MoveEntity doors1, 0,0,0.05
EndIf
EndIf

If doors# = 0 Then
If EntityX# (doors1, 1) > 0 Then
MoveEntity doors1, 0.01,0,0
EndIf
If EntityZ# (doors1, 1) > 0 Then
MoveEntity doors1, 0,0,-0.05
EndIf
EndIF

If doors# > 1 Then
doors# = 0
EndIf


Ich weiß nicht wo ein Fehler liegt??


Anfangs sind meine Türen an 0,0,0 beim Parent-Objekt, doch wenn ich dann die Taste drücke, bewegen sie sich 50m nach Hinten, auf die Absolute Koordinate 0,0,0 und wenn ich dann die Taste drücke, geht es so wie ich es will, nur an der Absoluten Koordinate, dabei ist mein Türobjekt Child von der Metro.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group