Frameunabhängigkeit, FastExt-Blur, Sprungsound

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

LorDtaiBsn

Betreff: Frameunabhängigkeit, FastExt-Blur, Sprungsound

BeitragDi, Jan 12, 2010 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo liebe Gemeinde,
ich hab mal wieder ein paar Fragen bzgl. meines Spieles.

Die erste lautet: Wie kann ich die Spielgeschwindigkeit von der Anzahl der Frames unabhängig machen? Ich schätze mal, da muss irgendwas mit dem Flip-Befehl passieren, nur was?

Frage Nummer zwei:
(Ich hoffe, von euch kennt sich jemand mit der FastExt-Libary aus)
Der Blur-Effekt, den ich meinem Spiel gegeben habe, ist viel zu krass, egal wie ich's einstelle.
Hier der Code...
BlitzBasic: [AUSKLAPPEN]
CustomPostprocessBlur 0.01, 4, 0.05, 1, 255, 255, 255, 0; alpha, pässe, radius,quali,rot,grün,blau,tex

Um ihn zu initialisieren quasi.

Und kurz vorm Ende der Schleife steht noch
BlitzBasic: [AUSKLAPPEN]
RenderPostprocess FE_BlurMotion

Ich sehe kaum noch was, so krass ist der. Ich würd's gern so machen, dass man den wirklich nur sieht, wenn man sich schnell bewegt, und dann auch nur kurz. Wäre nett, wenn mir da jemand behilflich sein könnte^^


Und zu guter Letzt habe ich ein Soundproblem.
Ich habe einen Sound, wenn ich springe. Das heißt, wenn ich die Leertaste drücke...
BlitzBasic: [AUSKLAPPEN]
	If KeyDown(57) Then

MoveEntity camera,0,s,0

If trittzeit < MilliSecs() Then
trittzeit = MilliSecs() + 1000
EmitSound (sprung,camera)

EndIf
EndIf

Ich würde das jetzt gerne so haben, dass ich den Sprungsound nur höre, wenn ich abspringe, aber bis zum Absprungzeitpunkt auch auf'm Boden war.
Wenn ich jetzt einfach statt BlitzBasic: [AUSKLAPPEN]
If KeyDown(57)
hinschreiben würde BlitzBasic: [AUSKLAPPEN]
If KeyDown(57) And EntityCollided(camera,TER_COL) Then
, so wie ich's bei der Gravitation gemacht habe, wo übrigens alles 1A funktioniert, dann höre ich weder ein Geräusch noch kann ich springen. Wie soll es sonst funktionieren?
Danke im Voraus für die Hilfe!!

Midimaster

BeitragDi, Jan 12, 2010 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
zu Framerate:


Ich denke mal, Du meinst mit Spielgeschwindigkeit die Geschwindigkeit der einzelnen Figuren, oder?

Erster Schritt ist immer mit einem TIMER eine feste Framerate von 60 herzustellen.. Da das auch gleichzeitig die typische Bildaufbaurate der meisten Monitore ist, macht es keinen Sinn, den Screen öfter bauen zu lassen. Die Figuren im Spiel bekommen dann FLOAT-Variablen für Position, Speed, etc. Diese Variable legt fest, wie weit sie in einer solchen 1/60-sec kommen sollen.

Eine zweite Möglichkeit wäre nur den Bildaufbau alle 1/60 zu machen und dann allen Akteuren eine Variable NextAktion% mitzugeben, in der mit ...

NextAktion=Millisecs()+WannWieder%

...im Moment der Aktion notiert wird, wann sie wieder eine Bewegung machen sollen.

Dritte Möglichkeit ist die Kombination aus CAPTUREWORLD und RENDERWORLD() mit dem Parameter Schritt#, wo du einen Endzustand in mehreren Schritten erreichen kannst (siehe Hilfe)
 

LorDtaiBsn

BeitragDi, Jan 12, 2010 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, verstehe, muss ich mir aber auf jeden Fall nochmal genauer anschauen. Smile

Und was ist mit meinen anderen Problemen? Sad ^^

Mr.Keks

BeitragDi, Jan 12, 2010 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
zu 1.:
simpelste Variante:
Code: [AUSKLAPPEN]
timescale = (Millisecs()-lastmsc)
lastmsc = Millisecs()
...
MoveEntity player,0,0,speed*timescale

(Auch ganz logisch: Wie weit du kommst, entspricht deiner Geschwindigkeit multipliziert mit der vergangenen Zeit, über die du diese Geschwindigkeit hast. Schul-Physik, erstes Jahr.)

zu 3.:
Es ist leider etwas undurchsichtig, wo da was wie passieren soll. Wenn du eine Stelle im Code hast, an der du abspringst - und das abspringen funktioniert, solltest du eigentlich problemlos das mit dem Soundabspielen hinbekommen. Versuch durch Variablen und Funktionen den Sinn von bestimmten Codefragmenten zu verdeutlichen! Soll heißen: Nicht die Kamera, sondern der Spieler springt! Die Kamera hängt bestenfalls am Spieler. Und das Springen und so hängt nicht von irgendeiner Kollision und irgendeinem Tastendruck ab, sondern vom Bodenkontakt und der Taste, die fürs Springen festgelegt wurde. Code: [AUSKLAPPEN]
Const KEY_SPACE = 57
...
control_jumpkey = KEY_SPACE
...
...
    player_ontheground = EntityCollided(player, TER_COL)
    If player_ontheground
        If KeyDown(control_jumpkey) Then
            ;springe ab und mache sound
        EndIf
    Else
        ; gravitation wirkt
    EndIf
MrKeks.net
  • Zuletzt bearbeitet von Mr.Keks am Di, Jan 12, 2010 18:20, insgesamt 2-mal bearbeitet
 

LorDtaiBsn

BeitragDi, Jan 12, 2010 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist nicht, dass der Sound nicht abspielt, sondern dass er zu oft abgespielt wird. Ich möchte, dass der Sound nur abgespielt wird, wenn ich vorher auf dem Boden war, und nicht, wenn ich schon in der Luft bin, aber gerade die Leertaste drücke. Das ist mein Problem Sad

FireballFlame

Betreff: Re: Frameunabhängigkeit, FastExt-Blur, Sprungsound

BeitragDi, Jan 12, 2010 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
LorDtaiBsn hat Folgendes geschrieben:
Frage Nummer zwei

Nun ja, mit der einen Funktion da stellst du den Blur-Effekt ein, und mit der anderen renderst du den BlurMotion-Effekt. Da stimmt was nicht, das sind nämlich zwei unterschiedliche Wink
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit
 

LorDtaiBsn

Betreff: Re: Frameunabhängigkeit, FastExt-Blur, Sprungsound

BeitragMi, Jan 13, 2010 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
FireballFlame hat Folgendes geschrieben:
LorDtaiBsn hat Folgendes geschrieben:
Frage Nummer zwei

Nun ja, mit der einen Funktion da stellst du den Blur-Effekt ein, und mit der anderen renderst du den BlurMotion-Effekt. Da stimmt was nicht, das sind nämlich zwei unterschiedliche Wink


Stimmt, danke xD

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group