Waitevent()

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

 

Jey

Betreff: Waitevent()

BeitragDi, Okt 10, 2006 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, habe schon mehrere Beiträge zu dieser Funktion gelesen, komme leider immer noch nicht ganz klar.
Waitevent wartet ein event ab und gibt es zurück. Also wenn ich "Waitevent(1)" schreibe, wird dann sobald in der millisekunde ein Event eintrifft dieses ausgegeben oder das letzte in dieser millisekunde?

Ich habe irgendwie das Problem dass ich ein Canvas habe, indem eine bewegte Graphik angezeigt werden soll. Nun soll geprüft werden, wo sich darin die maus befindet ( Mit mouseX(Canvas) ). Nur wenn ich nun schnell die maus aus dem Canvas entferne, dann behält die Funktion ja den Wert des punktes, andem die Maus aus dem Canvas ausgetreten ist.
Soweit sogut, jetzt könnte ich mit Waitevent(1)=$205/$206 prüfen ob die maus
das Canvas verlassen hat oder ob es eingetreten ist. Nur leider funktioniert das so nicht.
Kann er nur events während dieser einen Millisekunde speichern? Wenn ja, bedeutet das, dass in der übrigen Hauptschleife keine events entgegengenommen werden können, diese also verloren gehn? Weil das wäre irgendwie schade wenn es um Echtzeitanwendungen geht.

Bisher beobachte ich, dass wenn meine Hauptschleife ohne waitevent() etwa 50 millisecs braucht und ich dann ein waitevent(50) einbaue, dass es etwa jedes 2te mal auf ein ereignis wie klicken reagiert?

TheProgrammer

BeitragDi, Okt 10, 2006 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Welche Version von BlitzPlus benutzt du? Die Events für das Ein- und Austreten der Maus in einem Canvas gibt es in älteren Versionen noch nicht. (Die aktuelle Version ist 1.42, siehe Rechts ->) Du solltest dein B+ vlt. mal updaten Wink

Mfg
TheProgrammer
aktuelles Projekt: The last day of human being
 

Jey

BeitragMi, Okt 11, 2006 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hatte wirklich eine alte Version Smile , hatte mir jedoch schon eine Methode geschrieben, die den Ein- und Austritt der Maus in ein Canvas prüft.

Code: [AUSKLAPPEN]

 ;Can Austritt
 If mx_can = mx_can_old And my_can = my_can_old Then
  If mx<>mx_old Or my<>my_old Then
   mouse_can_collide = 0
  EndIf
 EndIf
 ;Can Eintritt
 If mx_can <> mx_can_old Or my_can <> my_can_old Then mouse_can_collide=1


Es wird also einfach geprüft, ob die Maus außerhalb des Canvas noch bewegt wird während die Methoden MouseX( can ) und mouseY( can ) gleich bleiben. Daher weiß man, dass die Maus außerhalb ist.

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group