AddMesh Problem, Quader - .3ds

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

BastianA

Betreff: AddMesh Problem, Quader - .3ds

BeitragDi, Jun 15, 2010 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
leider habe ich wieder ein Problem.
Ich habe einen Quader erstellt und eine Textur zugewießen. Die Texturen kann man auch verändern, aber das ist nebensächlich. Der Quader soll aber mit meiner Tram mitfahren, also .3ds, allerdings macht er das nicht, er bleibt einfach an der Position stehen:
Code: [AUSKLAPPEN]

;Matrix-System-Teil I
MatrixF = CreateCube()
PositionMesh MatrixF,6.1651 , 2.4029, 0
ScaleMesh MatrixF, 0.01, 0.1, 0.5 

MatrixTex2 = LoadTexture ("Matrix\2.bmp", 1)
MatrixTex3 = LoadTexture ("Matrix\3.bmp", 1)
MatrixTex4 = LoadTexture ("Matrix\4.bmp", 1)
MatrixTex5 = LoadTexture ("Matrix\5.bmp", 1)
MatrixTex6 = LoadTexture ("Matrix\6.bmp", 1)
MatrixTex7 = LoadTexture ("Matrix\7.bmp", 1)
MatrixTex8 = LoadTexture ("Matrix\8.bmp", 1)
MatrixTex9 = LoadTexture ("Matrix\9.bmp", 1)
MatrixTex10 = LoadTexture ("Matrix\10.bmp", 1)
MatrixTex11 = LoadTexture ("Matrix\11.bmp", 1)
MatrixTex12 = LoadTexture ("Matrix\12.bmp", 1)
MatrixTex13 = LoadTexture ("Matrix\13.bmp", 1)
EntityTexture MatrixF, MatrixTex2
AddMesh MatrixF, Tram


Geht das bei Quader -> .3ds nicht ?
Ich habe es mit einer .3ds probiert das funktioniert aber mit einem Mesh nicht.
mfg
 

PacMani

BeitragDi, Jun 15, 2010 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch's mal mit
Code: [AUSKLAPPEN]
MatrixF = CreateCube(Tram)

BastianA

BeitragDi, Jun 15, 2010 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah oke, danke, funktioniert jetzt. Aber warum ist mein Quader auf 0,0 ?
Ich habe ihn doch mit PositionEntity auf eine Koordinate geladen, er bleibt aber auf 0,0,0. Das Skalieren funktioniert alles nur die Koordinate des Quaders und die Rotation haben beide keine Wirkung. Was mache ich falsch ?
 

PacMani

BeitragDi, Jun 15, 2010 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht PositionMesh, PositionEntity nehmen. Mesh verschiebt nur das Modell, so als ob du es in einem 3DS-Editor wie Blender verschieben und dann speichern würdest. Die Koordinate des ganzen Entities bleibt aber trotzdem noch bei 0, 0, 0.

Dabei musst du die Koordinaten bei PositionEntity an die des lokalen Koordinatensystems der Tram anpassen (wenn er also auf ihr sein soll, z.B. "0, 1, 0" nehmen).

BastianA

BeitragDi, Jun 15, 2010 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
AH oke, danke, funktioniert jetzt, habe es begriffen.
Noch eine kleine kurze OT Frage, bevor der Thread der Vergangenheit angehört:
Ist es möglich mehrere Sounds laufen zu lassen?
Also ich habe hier einen Sound für die Tram, der je nach Geschwindigkeit sich ändert, das passt ja auch. Allerdings möchte ich einen Radio, der einen Sound abspielt, nur wenn sich die Geschwindigkeit ändert, ändert sich auch der Sound, gibt es da noch eine andere Möglichkeit ?
Hier mal meinen Code:
Code: [AUSKLAPPEN]

;Radio Teil I
RadioS = LoadMesh("Radio/silber/radio.3ds", Tram)
RotateEntity RadioS, 0, -90, 0
AddMesh RadioS, Tram
sradio = LoadSound ("Radio\radio.mp3")

...

;Radio!
If KeyDown (19) Then
radiof# = radiof# + 1
End If

If radiof# > 1 And radiof# < 5 Then radiof1# = 1
If radiof# > 6 And radiof# < 10 Then radiof1# = 2

If radiof1# = 1 Then
rchn = PlaySound(sradio)
EndIf

If radiof1# = 2 Then
StopChannel rchn
EndIf
;Ende Radio!

SoundId=LoadSound("Sounds\Motor2.wav")
LoopSound SoundId

If KeyDown(20) Then
Ma# = Ma# + 1
If Ma# = 1 Then ChannelId=PlaySound(SoundId)
If Ma# = 2 Then StopChannel ChannelId
If Ma# = 3 Then Ma# = 0
EndIf
SoundPitch SoundId, speed#*20000
 

PacMani

BeitragDi, Jun 15, 2010 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
;Radio!
If KeyDown (19) Then
radiof# = radiof# + 1
End If

If radiof# > 1 And radiof# < 5 Then radiof1# = 1
If radiof# > 6 And radiof# < 10 Then radiof1# = 2

If radiof1# = 1 Then
rchn = PlaySound(sradio)
EndIf


Sehe ich hier einen KeyHit-Workaround?
Wenn du den einmaligen Druck einer Taste überprüfen willst, nutze KeyHit(), nicht KeyDown. radiof muss übrigens keine Gleitkommazahl sein (#), da du ja keine Nachkommawerte hineinspeicherst. Ich habe deswegen mal die # entfernt (die sowieso nur bei der erstmaligen Definition nötig sind).
Code: [AUSKLAPPEN]
;Radio!
If KeyHit(19) Then
radiof = Not(radiof)
If radiof = True Then
rchn = PlaySound(sradio)
Else
StopChannel rchn
End If


Zitat:
nur wenn sich die Geschwindigkeit ändert, ändert sich auch der Sound, gibt es da noch eine andere Möglichkeit ?


Wie meinst du das jetzt genau? Willst du ein anderes Motorgeräusch ab XYZ km/h? Da musst du dann schon mehrere Sounds laden, und einen Channel je nach Geschwindigkeit mit dem passenden Sound bestücken.

BastianA

BeitragDi, Jun 15, 2010 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja das mit dem Motorsound passt schon so, darum geht es nicht. Es geht darum, dass ich einen Sound abspielen will, der Motorsound läuft aber im Hintergrund. Der Sound wird ja abgespielt, allerdings in einer falschen Tonhöhe, die sich aber auf den Motor bezieht, aber der Radio wird auch dann je nach Geschwindigkeit verstellt.
Mit deinem Code geht jetzt gar nichts mehr :S
 

PacMani

BeitragDi, Jun 15, 2010 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst das Radio ja auch in einem anderen Channel laufen lassen.

BastianA

BeitragMi, Jun 16, 2010 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, hab ich doch, also hier der Code :
Code: [AUSKLAPPEN]

RadioS = LoadMesh("Radio/silber/radio.3ds", Tram)
RotateEntity RadioS, 0, -90, 0
AddMesh RadioS, Tram
sradio = LoadSound ("Radio\radio.mp3")

...

;Radio!
 If KeyDown (19) Then
 radiof# = radiof# + 1
 End If

 If radiof# > 1 And radiof# < 5 Then radiof1# = 1
 If radiof# > 6 And radiof# < 10 Then radiof1# = 2

 If radiof1# = 1 Then
 rchn = PlaySound(sradio)

EndIf

If radiof1# = 2 Then
StopChannel rchn
EndIf

....


LoopSound SoundId

If KeyDown(20) Then
Ma# = Ma# + 1
If Ma# = 1 Then ChannelId=PlaySound(SoundId)
If Ma# = 2 Then StopChannel ChannelId
If Ma# = 3 Then Ma# = 0
EndIf
SoundPitch SoundId, speed#*20000



Ich verstehe nicht, was daran falsch ist, Motor und Radio sind ja auf einem anderen Channel :S

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group