Nur einmal mousehit?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Rob_

Betreff: Nur einmal mousehit?

BeitragDi, Jan 04, 2005 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ich habe mal ein menü mit functionen gemacht für mein nächstes spiel nur kann man nur einmach mousehit verwenden : ( und zwar nur einmal beim anfangs abfrage : ( und die darunter nicht, wenn ich die unterste if abfrage nach oben setzte klapt diese aber nicht die untersen : ( wie kann man das machen? Ich habe schon ausprobiert die mousehit in variable abzuspeichern und dann auch abzufragen aber das selbe : (

Code: [AUSKLAPPEN]
Graphics 640,480,32,2
SetBuffer BackBuffer()


;SFX LOADING
Global title_droop = LoadSound("Sfx\button_droop.mp3")



;GFX LOADING
Global title_menu      = LoadImage("Gfx\title_menu.png")
Global title_help01    = LoadImage("Gfx\title_screen_help01.png")
Global title_help02    = LoadImage("Gfx\title_screen_help02.png")
Global title_help03    = LoadImage("Gfx\title_screen_help03.png")
Global title_button    = LoadImage("Gfx\title_screen_button.png")
Global title_highscore = LoadImage("Gfx\title_highscore.png")
Global var_title_menu      = 1
Global var_title_highscore = 0

MaskImage title_help01,255,0,255
MaskImage title_help02,255,0,255
MaskImage title_help03,255,0,255
MaskImage title_button,255,0,255


Global map_rock_01 = LoadImage("Gfx\rock_01.png")
Global map_podest  = LoadImage("Gfx\podest01.png")




Repeat
Cls


If var_title_menu      = 1 Then drawmenu()
If var_title_highscore = 1 Then showhighscore()




Text 20,20,"MouseX: "+MouseX()
Text 20,40,"MouseY: "+MouseY()


Flip
Until KeyHit(1)
End


;FUNCTION MENÜ
Function drawmenu()

DrawImage title_menu,0,0


   
   ;MENÜ START GAME BUTTON
   If MouseX() > 250 And MouseX() < 282 And MouseY() > 299 And MouseY() < 330 Then

   DrawImage title_help01,20,285
   DrawImage title_button,252,300
   

      
   EndIf

      ;MENÜ START GAME BUTTON TRUE
      If MouseX() > 250 And MouseX() < 282 And MouseY() > 299 And MouseY() < 330 And MouseHit(1) Then

   
      var_title_menu = 0
      
         
      EndIf



   ;MENÜ HIGHSCORE BUTTON
   If MouseX() > 252 And MouseX() < 282 And MouseY() > 342 And MouseY() < 370 Then

   DrawImage title_help02,20,285
   DrawImage title_button,253,342
   
 
      
   EndIf

      ;MENÜ HIGHSCORE BUTTON TRUE
      If MouseX() > 252 And MouseX() < 282 And MouseY() > 342 And MouseY() < 370 And MouseHit(1) Then

      var_title_menu = 0
      
 
      
      EndIf



   ;MENÜ END GAME BUTTON
   If MouseX() > 255 And MouseX() < 282 And MouseY() > 385 And MouseY() < 412 Then

   DrawImage title_help03,20,285
   DrawImage title_button,254,384
         
   
   EndIf

      ;MENÜ END GAME BUTTEN TRUE
      If MouseX() > 255 And MouseX() < 282 And MouseY() > 385 And MouseY() < 412 And MouseHit(1) Then
   
      End
   
   
   
      EndIf


End Function


;FUNCTION HIGHSCORE
Function showhighscore()

DrawImage title_highscore,0,0

End Function
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX
 

OJay

BeitragDi, Jan 04, 2005 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
frage mousehit() pro taste nur einmal ab, speichere diesen wert in einer variable und prüfe nur diese variable ab.
mousehit() und keyhit() geben die ANZAHL von klicks seit dem letzten mousehit()/keyhit() aufruf dieser taste zurück, dieser ist dann folglich beim 2ten 0, weil du es kaum schaffen wirst, 2mal innerhalb weniger millisekunden zu klicken Wink

Rob_

BeitragDi, Jan 04, 2005 17:49
Antworten mit Zitat
Benutzer-Profile anzeigen
na ich verstehe nicht wie du es meinst : (
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

Waveblue

BeitragDi, Jan 04, 2005 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
ich würd sagen:

nach einer Abfrage des Keyhit wird dieser Wert wieder 0!
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

Rob_

BeitragDi, Jan 04, 2005 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Evil or Very Mad nein nein nein gar nichts geht, : ( nur das erste ! : ( man!
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

Waveblue

BeitragDi, Jan 04, 2005 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
na klar!
bei der ersten Abfrage ist Keyhit ja noch 1!
bei den nächsten Abfragen ist der Wert ja schon wieder Null!
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

Rob_

BeitragDi, Jan 04, 2005 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
meinst du ich soll nach

Code: [AUSKLAPPEN]
;MENÜ END GAME BUTTEN TRUE
If MouseX() > 255 And MouseX() < 282 And MouseY() > 385 AndMouseY() < 412 And MouseHit(1) Then
   
     if mouse(1) = 1 then mouse(1) = 0

     End
   
      EndIf


machen? oder so ähnlich?
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

Gameprogman

BeitragDi, Jan 04, 2005 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach nach jedem If FlushMouse, das löscht alle Mausbefehle
www.bandradr.de ! Awesome !
 

Edlothiol

BeitragDi, Jan 04, 2005 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Das bringt nichts.
Wenn du mal suchen würdest, Rob_, dann würdest du wahrscheinlich mindestens 5 Threads zu genau diesem Problem finden. Vielleicht solltest du das mal ausprobieren...

Hubsi

BeitragDi, Jan 04, 2005 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist das so schwer?

Code: [AUSKLAPPEN]
mh=MouseHit(1)

if mh...

if mh...

if mh...
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Rob_

BeitragDi, Jan 04, 2005 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Rolling Eyes Es geht nicht.

Ich habe es so gemacht wie hubi, ich habe in die schleife mh1 = mousehit(1) gemacht.

Wenn ich jetzt mache in der function:

If mh1 = 0 and mousex() < 100 etc. dann geht es auf einmacl aus.
Aber wenn ich mache mh = 1 and mousex() < 100 etc. und ich drauf klicke dann passiert nichts.
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

D2006

Administrator

BeitragDi, Jan 04, 2005 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
aber dein mh1 ist schon global oder ? Rolling Eyes

MfG

Rob_

BeitragDi, Jan 04, 2005 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

Waveblue

BeitragDi, Jan 04, 2005 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
tja, in dem Fall...

Poste am besten den Code mit eingebauten mh1!
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

Rob_

BeitragDi, Jan 04, 2005 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 640,480,32,2
SetBuffer BackBuffer()


;SFX LOADING
Global title_droop = LoadSound("Sfx\button_droop.mp3")



;GFX LOADING
Global title_menu      = LoadImage("Gfx\title_menu.png")
Global title_help01    = LoadImage("Gfx\title_screen_help01.png")
Global title_help02    = LoadImage("Gfx\title_screen_help02.png")
Global title_help03    = LoadImage("Gfx\title_screen_help03.png")
Global title_button    = LoadImage("Gfx\title_screen_button.png")
Global title_highscore = LoadImage("Gfx\title_highscore.png")
Global var_title_menu      = 1
Global var_title_highscore = 0

MaskImage title_help01,255,0,255
MaskImage title_help02,255,0,255
MaskImage title_help03,255,0,255
MaskImage title_button,255,0,255


Global map_rock_01 = LoadImage("Gfx\rock_01.png")
Global map_podest  = LoadImage("Gfx\podest01.png")





Global mh1 = MouseHit(1)

Repeat
Cls


If var_title_menu      = 1 Then drawmenu()
If var_title_highscore = 1 Then showhighscore()




Text 20,20,"MouseX: "+MouseX()
Text 20,40,"MouseY: "+MouseY()


Flip
Until KeyHit(1)
End


;FUNCTION MENÜ
Function drawmenu()

DrawImage title_menu,0,0



   ;MENÜ START GAME BUTTON
   If MouseX() > 250 And MouseX() < 282 And MouseY() > 299 And MouseY() < 330 Then

   DrawImage title_help01,20,285
   DrawImage title_button,252,300
   
   
      
   EndIf

      ;MENÜ START GAME BUTTON TRUE
      If mh1 = 1 And MouseX() > 250 And MouseX() < 282 And MouseY() > 299 And MouseY() < 330 Then
                
      var_title_menu = 0
      
          
      EndIf
      



   ;MENÜ HIGHSCORE BUTTON
   If MouseX() > 252 And MouseX() < 282 And MouseY() > 342 And MouseY() < 370 Then

   DrawImage title_help02,20,285
   DrawImage title_button,253,342
   
 
      
   EndIf

      ;MENÜ HIGHSCORE BUTTON TRUE
      If mh1 = 1 And MouseX() > 252 And MouseX() < 282 And MouseY() > 342 And MouseY() < 370 Then

      var_title_menu = 0
      
 
      
      EndIf



   ;MENÜ END GAME BUTTON
   If MouseX() > 255 And MouseX() < 282 And MouseY() > 385 And MouseY() < 412 Then

   DrawImage title_help03,20,285
   DrawImage title_button,254,384
         
   
   EndIf

      ;MENÜ END GAME BUTTEN TRUE
      If mh1 = 1 And MouseX() > 255 And MouseX() < 282 And MouseY() > 385 And MouseY() < 412 Then
   
      End
   
   
   
      EndIf


End Function


;FUNCTION HIGHSCORE
Function showhighscore()

DrawImage title_highscore,0,0

End Function
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX
 

OJay

BeitragDi, Jan 04, 2005 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
versuch mal, das mh1 = mousehit(1) in die hauptschleife zu setzen...

ohgottogottogott...

Waveblue

BeitragDi, Jan 04, 2005 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
vielleicht solltest du mh1 in jedem Schleifendurchlauf neu belegen! Wink
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

Rob_

BeitragDi, Jan 04, 2005 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
@ olay
gute idee -.- geht aber leider auch nicht.
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

Rob_

BeitragDi, Jan 04, 2005 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok hat sich erledigt, an alle voll profis:

Ich habe das mh1 = mousehit(1) in die function gesteckt jetzt klappts ^^
Aber trozdem danke, das ihr mir helfen wolltet, aber es nicht geschaft habt Razz
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

D2006

Administrator

BeitragDi, Jan 04, 2005 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Du bist doch hier der voll profi.

Ich gehe ja immernoch davon aus, dass Leute wie du mangels der Fähigkeit zu atmen bald aussterben.

[ignore=on]

MfG

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group