Anfängerfrage! Bitte um hilfe!

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Grossi

Betreff: Anfängerfrage! Bitte um hilfe!

BeitragFr, Mai 14, 2004 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.
Ich möchte gern das wenn die maus auf einem bestimmten Punkt ist (z.B. 400,300) ein zähler eins weiter gesetzt wird. Ich hab das jetzt schon so:
Code: [AUSKLAPPEN]

Graphics 800,600
SetBuffer BackBuffer()
Maus = LoadImage("pointer.bmp")
Repeat
x = MouseX()
y = MouseY()
zaeler = 0
If x = 400 And y = 300 Then zaeler = zaeler + 1
Text 100,100, + zaehler
Flip
Until KeyHit(1)
End


Aber wenn man dann auf dem Punkt ist wird dann immer ganz schnell gezählt!! Wie macht man es das dann immer nur EINMAL gezählt wird wenn man darauf ist??? Danke schonmal im vorraus!
 

Ensign Joe

BeitragFr, Mai 14, 2004 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Global Bla = Millisecs()
Global WartenZwischen = 350

if Millisecs() - WartenZwischen => Bla then
     if x = 400 and y = 300 Then zaehler = zaehler + 1
     bla = Millisecs()
endif

Triton

BeitragFr, Mai 14, 2004 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
So wird alle 350 ms weitergezählt.

Nicht getestet und kann sicher stark gekürzt werden, müste aber funzen:
Code: [AUSKLAPPEN]

Graphics 800,600
SetBuffer BackBuffer()
blaa=799
blab=0
Repeat
   x = MouseX()
   y = MouseY()
   If a=0 And x = blaa And y = blab Then
      zaehler = zaehler + 1
      a=1
   End If
   If a=1 And x >< blaa Or y >< blab Then a=0
   Text 100,100, x+"/"+y+"/"+ zaehler
   Plot x,y
Flip
Cls
Until KeyHit(1)
End

Mangudai

BeitragFr, Mai 14, 2004 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
habs auch probiert:)
Code: [AUSKLAPPEN]

Global Bla = MilliSecs()
Global WartenZwischen = 350
Graphics 800,600
SetBuffer BackBuffer()
Repeat
Cls
Rect MouseX(),MouseY(),10,10,1
Rect 400,300,10,10,1
x = MouseX()
y = MouseY()
If MilliSecs() - WartenZwischen => Bla Then
zaeler = 0
If  x  =  400 And  y = 300  Then  zaehler = zaehler + 1
bla = MilliSecs()
EndIf
Text 100,100,  + zaehler
Flip
Until KeyHit(1)
End

das milisecs zeug hab ich von joe verwendet:)
lg Mangudai
 

Edlothiol

BeitragFr, Mai 14, 2004 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 800,600
SetBuffer BackBuffer()
Maus = LoadImage("pointer.bmp")
drueber = False
Repeat
x = MouseX()
y = MouseY()
zaehler = 0
If x = 400 And y = 300 Then
  If drueber = False Then
    zaehler = zaehler + 1 ; Hier fehlten übrigens die hs
    drueber = True
  End If
Else
  drueber = False
End If
Text 100,100, zaehler
Flip
Until KeyHit(1)
End
Und so wird nur einmal gezählt. Du speicherst einfach in einer Variablen, ob der Zeiger schon vorher drüber war. Wenn er nicht über dem Punkt ist, wird drueber auf False gesetzt. Wenn er drüber ist, wird drueber auf True gesetzt und die Variable erhöht.
 

Grossi

BeitragFr, Mai 14, 2004 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
dank an
Ensign Joe, Triton, Mangudai und Edlothiol!!
Ihr habt mir sehr geholfen!!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group