Frameunabhängigkeit, FastExt-Blur, Sprungsound
Übersicht

LorDtaiBsnBetreff: Frameunabhängigkeit, FastExt-Blur, Sprungsound |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, verstehe, muss ich mir aber auf jeden Fall nochmal genauer anschauen. ![]() Und was ist mit meinen anderen Problemen? ![]() |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
![]() |
FireballFlameBetreff: Re: Frameunabhängigkeit, FastExt-Blur, Sprungsound |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
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 |
LorDtaiBsnBetreff: Re: Frameunabhängigkeit, FastExt-Blur, Sprungsound |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() Stimmt, danke xD |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group