MouseHit
Übersicht

flexer94Betreff: MouseHit |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey,
ich hab ein Problem mit dem Befehl "MouseHit(x)". Und zwar möchte ich ein Menü machen, indem man auf Schaltflächen (In meinem Fall Bilder ![]() Ist noch sehr unvollständig, vll. hilfts wenn ich den Code poste. Code: [AUSKLAPPEN] Graphics 1024,768,32,2 SetBuffer BackBuffer() newgame = LoadImage("gfx\menu\newgame.png") MidHandle newgame options = LoadImage("gfx\menu\options.png") MidHandle options ende = LoadImage("gfx\menu\end.png") MidHandle ende pointer = LoadImage("gfx\menu\pointer.png") MidHandle pointer resolution = LoadImage("gfx\menu\resolution.png") MidHandle resolution HidePointer ;________MAIN MENU!!!!!!!!!! While 1 .menu m_X = MouseX() m_Y = MouseY() Cls DrawImage newgame,500,200 DrawImage options,500,270 DrawImage ende,505,340 DrawImage pointer,m_X,m_Y If ImagesCollide(pointer,m_X,m_Y - 30,0,ende,500,340,0) = 1 And MouseHit(1) Then End If ImagesCollide(pointer,m_X,m_Y - 30,0,options,500,270,0) = 1 And MouseHit(1) Then While 1 Cls DrawImage resolution,450,200 Flip Wend EndIf Flip Wend ;___________END MENU!!!!!!!!!! Type schuss Field schuss_x Field schuss_y End Type ;_______MAIN LOOP!!!! ;_______BUILD - FUNCS AND SUBS .options |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Local MH1=MouseHit(1)
If MH1 Then UndAlleSoYeeaah |
||
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Huhu, mehrere Sachen.
1. Meide Goto. Benutze Funktionen. 2. Daraus folgert sich auch der Aufbau einer MainLoop Code: [AUSKLAPPEN] While 'Abbruchsbedingung Cls <--- NUR EINMAL 'Code Flip <--- auch nur einmal Wend 3. Wie schon geschrieben. Nur einmal Cls 4. Wenn du alle deine Bilder "midhandlen" willst, kannst du auch einfach AutoMidHandle(True) verwenden. 5. Zu deiner Frage: Buttons solltest du nicht mit ImagesCollide() auf Kollision prüfen. Generell solltest du ImagesCollide() eher meiden. Prüf einfach die Koordinaten der Maus und ob sie auf dem Button liegen. Reicht an genauigkeit völlig aus. 6. Zu deiner Frage Teil 2: MouseHit() benutzt eine Art Puffer um deine Mauseingaben zu prüfen. Es liefert meines Wissens nach nicht ob geklickt wurde sondern eben die Zahl der Klicks seit dem letzten Aufruf zurück. Wie umgehst du das? Einfach am anfang der Main Schleife einmal Code: [AUSKLAPPEN] mh1 = MouseHit(1) machen. Dann einfach immer auf mh1 anstatt auf MouseHit() prüfen.
lg ComNik |
||
WIP: Vorx.Engine |
flexer94 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok mit mh1 = MouseHit(1) gehts.
Danke für deine Tips ![]() Gruß flexer |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Diese Frage hätte übrigens den Preis für die am Meisten gestellte Anfängerfrage verdient. Und daher will ich dich darüber informieren, dass du das Problem ganz schnell selbst hättest lösen können. Sei es über die Suchfunktion mit Hilfe der 100.000 anderen Themen mit diesem Problem oder via die FAQ, in der das Problem natürlich auch erläutert wird. | ||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group