Schrittgeräusche?
Übersicht

LorDtaiBsnBetreff: Schrittgeräusche? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo, ich habe mich jetzt mal daran gemacht, meine ganze Szenerie mit etwas Sound zu unterlegen. Als Atmosphäre habe ich aus Quake III einen Sound genommen, das funktioniert auch. Dann habe ich aus JK3 Fußschritte entnommen (alles natürlich nur zu Testzwecken!). Wenn ich die jetzt aber so einbinde wie ich das mal probiert habe, dann klingt das ganze wie ein einziges Störgeräusch. Hier der Code:
Vor der While-Schleife: BlitzBasic: [AUSKLAPPEN]
Und später: BlitzBasic: [AUSKLAPPEN] If KeyDown(17) MoveEntity cam,0,0,s : EmitSound (laufsound,camera) Gibt es einen Befehl, der den Sound zum Beispiel nur jede Sekunde ein mal abspielen lässt? Danke im Voraus! |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
So wird jede Sekunde *Schritt* ausgegeben, kannst dir ja noch anpassen ![]() Code: [AUSKLAPPEN] While Not KeyHit(1)
If MilliSecs()>curtime+1000 ; Falls die aktuelle Zeit grösser ist als curtime und eine Sekunde (1000 ms) curtime=MilliSecs() ; curtime aktualisieren Print "*Schritt*" EndIf Wend mfg |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wahrscheinlich wird die Funktion mehrmals aufgerufen, da du ja die Taste nicht so schnell loslassen kannst wie Blitz arbeitet. Lösung:
BlitzBasic: [AUSKLAPPEN] If KeyDown(17) |
||
- Zuletzt bearbeitet von Midimaster am So, Jan 03, 2010 18:01, insgesamt einmal bearbeitet
Fredko |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gibt es nicht, du müsstest das schon über Millisecs![]() ein Mesh mit Animation nutzt kannst du auch per Animating ![]() gerade eine Animation läuft, dann mit AnimSeq ![]() und dann bei AnimTime ![]() bringen würde? Du könntest einmal gucken, ob überhaupt was passiert. Dann, wenn es genau eine Laufanimation ist, immer dank AnimTime ![]() bestimmten Stellen den Sound abspielen, bzw. wäre es eine Rennanimation dies mit einem verkürzten Intervall, da beim Rennen Laufgeschwindigkeit natürlich größer ist, ganz logisch also. |
||
! |
LorDtaiBsn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Midimaster hat Folgendes geschrieben: Wahrscheinlich wird die Funktion mehrmals aufgerufen, da du ja die Taste nicht so schnell loslassen kannst wie Blitz arbeitet. Lösung:
BlitzBasic: [AUSKLAPPEN] If KeyDown(17) Hab' ich grad mal eingefügt, aber funktioniert so irgendwie nicht. Da die ganzen If-Befehle für die Bewegung der Kamera in 'ner Funktion stehen, sagter mir dann "End Function without Function". Ist da vielleicht nen If oder nen Endif zu viel? |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
sorry blöder Copy-Fehler von mir:
If TrittZeit < MilliSecs() Then |
||
LorDtaiBsn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Immernoch der End Function-Fehler... ![]() EDIT: Ich glaub' mein Problem ist, dass ich nicht wirklich weiß, wo ich die Trittzeit überall einfügen muss?! EDIT2: Könnte's daran liegen, dass der Befehl nicht in der Hauptschleife, sondern in ner Funktion hinter der Schleife steht? |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
aber nich von unserem Code...
Eine Function gibts doch da gar nicht... Die TrittZeit wird nur da erneuert wo ein EmitSound steht. Läuft deine Figur nur bei Dauerdrücken der Taste oder auch von alleine? zeig doch mal die ganze Funktion... |
||
LorDtaiBsn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nur, wenn ich drücke.
Hier die Funktion: BlitzBasic: [AUSKLAPPEN] Function MouseLook(cam) |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
klar da fehlt das zweite ENDIF in:
Zitat: EmitSound (laufsound,camera)
EndIf If KeyDown(31) MoveEntity cam,0,0,-s so ist es besser: BlitzBasic: [AUSKLAPPEN] EmitSound (laufsound,camera) |
||
LorDtaiBsn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dann sagter aber wiederum "'Endif' without 'If'"
EDIT: Hab's grad mal in die Hauptschleife getan, damit kann ich dann auch das Spiel starten und mit W funktioniert alles. Nun hab ich's auf die anderen Tasten übertragen, aber seitdem ich If KeyHit(17) mit dem Rest in die Hauptschleife getan habe und bei KeyHit(17) die Einstellungen mit dem MilliSecs etc. übernommen habe, fliege ich immer aus der Karte in Richtung -y, wenn ich A, S oder D drücke. Kann mir einer sagen, wieso? |
||
- Zuletzt bearbeitet von LorDtaiBsn am So, Jan 03, 2010 18:38, insgesamt einmal bearbeitet
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja, weil du nach dem KeyDown gleich einen Befehl geschrieben hast:
Zitat: If KeyDown(17) MoveEntity cam,0,0,s
If trittzeit < MilliSecs() Then trittzeit = MilliSecs() + 1000 EmitSound (laufsound,camera) EndIf ; EndIf so ist es besser: BlitzBasic: [AUSKLAPPEN] If KeyDown(17) |
||
LorDtaiBsn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab' meinen vorigen Post grad' nochmal editiert, einmal nach oben schauen wäre ganz nett ![]() |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
machs wieder zurück in die funktion und verbessere den fehler! | ||
LorDtaiBsn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hat funktioniert, klappt alles, tausend Dank! ![]() |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Noch ein Tipp, speicher die Tastatureingabe in einer Variablen, du fragst mehrmals in einer Schleife die gleichen Tasten ab.
zb key_left = keyhit(203) etc. Das ganze am Anfang der Schleife und du kannst do oft auf die Variable zugreifen wie du möchtest |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
LorDtaiBsn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
skey-z hat Folgendes geschrieben: Noch ein Tipp, speicher die Tastatureingabe in einer Variablen, du fragst mehrmals in einer Schleife die gleichen Tasten ab.
zb key_left = keyhit(203) etc. Das ganze am Anfang der Schleife und du kannst do oft auf die Variable zugreifen wie du möchtest Gute Idee, sollte ich mir mal angewöhnen! |
||
LorDtaiBsn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jetzt habe ich noch eine letzte Frage, ist es möglich, mehrere Schrittgeräusche zu benutzen, die zufällig verwendet werden? Irgendwie zum Beispiel mit dem Rand - Befehl?
Danke im Voraus! |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
klar, du lädst sie alle und wechselst per RAND zwischen ihnen durch. Wss spricht dagegen?
BlitzBasic: [AUSKLAPPEN] ;ganz am Anfang |
||
LorDtaiBsn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke! Hat funktioniert!
Aber es winkt schon das nächste Problem, ich habe nämlich jetzt eine Lagerhalle eingebettet, welche aber nur von außen Kollision hat. Hab' sie also folgendermaßen geladen: BlitzBasic: [AUSKLAPPEN]
Natürlich vor der Hauptschleife. Wie krieg ichs hin, dass es auch von innen eine Kollision gibt? EDIT: Mir ist aufgefallen, dass sich der Hintergrundsound nicht wiederholt. Ich lade ihn folgendermaßen ein: BlitzBasic: [AUSKLAPPEN]
Wenn ich statt PlaySound den Befehl LoopSound verwende, höre ich erst gar nichts. Wie ist der Befehl dafür,dass sich der Sound beliebig oft wiederholt? Für diejenigen, die einmal gerne einen Einblick hätten, hab' ich das Ganze mal hochgeladen: Das nächste Spiel aller Zeiten Das ganze läuft auf 'ner Auflösung von 1280*1024 Pixeln im Vollbildmodus, hab's jetzt gerade nicht wirklich gerafft, ne anständige Auflösung reinzuzaubern, tut mir Leid :/ Wäre gut möglich, dass viele von euch jetzt erstmal noch ein paar Objekte aus dem FastExt-Libary wiedererkennen, hab' die mal eingebettet, um wenigstens etwas Atmosphäre zu kreieren und das ganze ein bisschen mit Materie zu füllen... |
||
- Zuletzt bearbeitet von LorDtaiBsn am Mo, Jan 04, 2010 2:05, insgesamt 5-mal bearbeitet
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group