Hallo miteinander,
folgendes Problem: Ich benutze MOUSESTATE für die Mausabfrage. In den bisherigen Projekten war auch alles problemfrei. Aber in meinem letzten Projekt kriege ich völlig seltsame Effekte: Die Funktion liefert andere Mauspositionen zurück, als die Maus tatsächlich hat!
Und wenn ich dann einfach mal einen MOUSESTATE abfrage, auf den Schirm drucke, einen weiteren abfrage, ohne die Maus zu verändern, und den dann auch drucke, kriege ich zwei sowohl in x- als auch in y-Koordinaten erheblich differierende Ergebnisse. Ein paar Pixel hätt ich ja verstanden, aber teilweise fast 100 Pixel??
Ich hab mal das gesamte Projekt angehängt , falls jemand Lust hat, sich das Ganze anzusehen. Any idea?
[attachment deleted by admin]
Niemals soviele WHILE-WEND ineinander nutzen ;)
Denke da hast du nen Hund drin, hab jetzt leider auch nicht den nerv den ganzen Code zu zerpflücken, aber liegt zu 90% an der "falschen" Nutzung der Schleifen ;)
Hmmm. Also eigentlich ist das Ganze nur eine While-Wend-Schleife, die paar anderen da drin sind lediglich Warteschleifen, um das Programm eine definierte Zeit anzuhalten. Deren Struktur ist immer exakt gleich:
zeit=GETTIMERALL()
WHILE GETTIMERALL()-zeit < 800; WEND
Wenn das ein Problem ist, wie sonst kann man denn so was lösen? Ich brauche folgende schematische Ablaufstruktur:
WHILE i < LEN(folge[])
zeige Sprite folge[i]
spiele Sound folge[i]
Pause für 800ms
Eingabe auswerten
IF Eingabe ok
INC i,1
ELSE
i=1000
ENDIF
WEND
Timer setzen ;)
für Pause gibt es "SLEEP".
seufz... Vielleicht sollte ich doch endlich mal die _ganze_ Doku lesen...
Aber im Ernst: SLEEP hilft mir insofern nicht, als mein Problem damit bleibt. Nur der Code wird sauberer... Irgendwo steckt da ein dicker Hund, und ich bin zu vernagelt, ihn zu finden. Ich glaub, ich fang einfach noch mal von vorn an.
Was anners in dem Zusammenhang: Kann man eigentlich in GLBasic symbolische Konstanten definieren? War für Game-Zustände in XNA immer so praktisch...
Der CONST Befehl ist noch beta.
Du kannst es aber so machen:
TYPE TconstXY
a=1
b=7
ENDTYPE
GLOVAL XY as TconstXY
PRINT XY.a, 0,0
=D Prima Idee! Bewirkt letztlich genau das, was ich wollte, danke! An Types hatte ich noch gar nicht gedacht...