flushkey
Übersicht

![]() |
darthBetreff: flushkey |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi
ich hab n problem mit dem flushkey befehl... ich brauch den, denn wenn ich ihn nicht hab, drückt man einmal während dem spiel enter, läuft jahre später an etwas vorbei und nimmt es dann auf... is doch doof... aber wenn ich den flushkey jetzt einsetze, dann muss ich glück haben, damit der ein ereignis startet... jetzt ist die frage: gibt es ne bestimmte stelle wo ich den befehl schreiben muss? soll ich n timer einbauen? was sonst noch? |
||
Diese Signatur ist leer. |
DasKlo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Am besten seztzt du das ganz ans Ende der Hauptschleife, ungefähr so:
BlitzBasic: [AUSKLAPPEN]
Wenn du denn mittendrinnen einbaust, dann löscht der dir die Tastatureingaen, bevor du die verarbeiten kannst |
||
Aktuelles Projekt:
Demonspawn 29% Gesamt CodeGröße: 614KB Zeilen: 17967 OrdnerGröße: 151MB (wird allerdings noch weniger) |
![]() |
darthBetreff: ... |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi
hmm... hab ich ausprobiert... da muss man schon sehr glück haben damits geht... =S 50mal auf taste haun irgendwann wirds schon gehn... |
||
Diese Signatur ist leer. |
DasKlo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zeig mal den Code, dann kann man besser darüber reden | ||
Aktuelles Projekt:
Demonspawn 29% Gesamt CodeGröße: 614KB Zeilen: 17967 OrdnerGröße: 151MB (wird allerdings noch weniger) |
![]() |
darthBetreff: .. |
![]() Antworten mit Zitat ![]() |
---|---|---|
... =0 700 zeilen???
wart... ich schick mal das start, da ists das selbe, einfach mit flushmouse... mom Code: [AUSKLAPPEN] Graphics3D 800,600,0,1
SetBuffer BackBuffer() camera=CreateCamera() CameraViewport camera,0,0,800,600 light=CreateLight() maus=LoadImage("media\buttons\maus.bmp") ScaleImage maus,2,2 ; ganze restl. images etc laden While Not keyhit(1) ; wenn maus über button soll er leuchten If MouseX()>300 And MouseX()<500 And MouseY()>95 And MouseY()<165 Then leucht=1 If MouseHit(1) Then goto fertig Else leucht=0 EndIf ;change modus If KeyHit(201) Then modus=modus+1 EndIf If modus=6 Then modus=modus-6 If KeyHit(209) Then modus=modus-1 EndIf If modus=-1 Then modus=modus+6 UpdateWorld RenderWorld If leucht=1 Then DrawImage logo2,5,5 Else DrawImage logo,5,5 EndIf DrawImage maus,MouseX(),MouseY() Text 100,200,"Player:" ; hier ganze restl. beschreibung Flip flushmouse ;hier isses Wend .fertig ;ganze modus einstellungen hoffe mal der code reicht als bsp... |
||
Diese Signatur ist leer. |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Machs vor Flip, da sollte es dann funktionieren! | ||
[BB2D | BB3D | BB+]
|
DasKlo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das dürfte eigentlich nichts ändern
Versuchs mal mit Flushmouse() |
||
Aktuelles Projekt:
Demonspawn 29% Gesamt CodeGröße: 614KB Zeilen: 17967 OrdnerGröße: 151MB (wird allerdings noch weniger) |
![]() |
Eclipse |
![]() Antworten mit Zitat ![]() |
---|---|---|
und was nützt ihm das?
Dann hat er eben eine Funktion statt einer Prozedur aber in seinem fall ist das völlig egal |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn es nach flip steht gibt es nur eine minimale Zeit in der eine Tastendruck funktioniert !
Denn die meiste Zeit bei schnellen Rechnern ist die Wartezeit auf den Monitor! Abgesehen davon ist Flushkeys eigendlich normal nicht nötig, solange diese Schleife läuft! Ich denke mal das das hier zu problemen führt! BlitzBasic: [AUSKLAPPEN] ; wenn maus über button soll er leuchten da MouseHit(1) nicht immer abgefragt wird ! drückt man einmal die Maus ohne das es aufgerufen wurde bleibt das erhalten ... kommt man nun auf den Button wird es gleich ausgeführt! besser man liest alle Key- und Maushit in eine Variable immer neu ein! BlitzBasic: [AUSKLAPPEN] ; wenn maus über button soll er leuchten |
||
[BB2D | BB3D | BB+]
|
- Zuletzt bearbeitet von Rallimen am Sa, Sep 03, 2005 22:10, insgesamt einmal bearbeitet
![]() |
darthBetreff: ... |
![]() Antworten mit Zitat ![]() |
---|---|---|
also doch mit einem timer?
(dass er nur jede sekunde n flushmouse/flushkey macht...) oder gibts doch noch n anderen weg? |
||
Diese Signatur ist leer. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@darth gamer, warum überhaupt FlushKeys? Diesen Befehl setze ich immer dann ein, wenn ich ein Programm schreibe welches mir irgendwas auf dem Bildschirm malt aber nicht weiterläuft. Damit ich mir dann das Bild auch anschauen kann dann setz ich ganz am Ende FlushKeys / WaitKey / End... Und fertig ist die Sache.
Willst du etwas abfragen was während der Laufzeit passiert aber nicht irgendwann mal passiert sein könnte dann ersetze mal KeyHit mit KeyDown und MouseHit mit MouseDown... Vielleicht hilft dir das ja weiter. |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Wenn es Dir nur darum geht, für einzelne Tasten zu verhindern, dass ein früher Tastendruck später mal eine Handlung ausführt, dann frage am besten alle Tasten, die wichtig in Deinem Spiel sind, regelmässig mit KeyHit() ab! Dies bewirkt ja ebenfalls einen (ganz gezielten) Tastenreset! ![]() Du kannst Dir die benötigten Werte vor Deiner Hauptschleife dann auch zwischenspeichern. Das ist ja sowieso oft eine ganz brauchbare vorgehensweise, denn schnell hintereinander für verschiedene Möglichkeiten die selbe Taste mit KeyHit() oder MouseHit() abzufragen, funktioniert ja eh nicht wirklich gut. ![]() [/edit] ok, hatte Rallimen schon geschrieben. ![]() |
||
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
if keyhit(enter) then
mach_dinge... flushkeys() end if ... ??? |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
![]() |
darthBetreff: thx |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi
@ava: ähm... ich frags ja ab... aber auswirkung hats nur wenn er nahe am objekt ist... d.h: er speicherts bis er da ist, und machts erst dann @alfadur: werd ich so ausprobieren, thx |
||
Diese Signatur ist leer. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group