Wirklich mysteriös .... *am kopf kratz*
Übersicht

Blitzkrieg BopBetreff: Wirklich mysteriös .... *am kopf kratz* |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi...
Habe inm einem editor 3 Buttons. Nun soll überprüft werden, was passiert wenn der Cursor über ihnen ist, und man dann di linke maustaste klickt. Komischerweise geht das immer nur bei dem ersten Button, also immer nur bei der ersten Code: [AUSKLAPPEN] If imagesoverlap(cursor,x_maus,y_maus,[button],[x_button],[y_button]) in diesem fall ist das erste Speichern. DAs geht wunderbar, aber der Rest nicht. Code: [AUSKLAPPEN] ;Speichern: If ImagesOverlap(cursor,x_maus,y_maus,b3,x_speichern,y_speichern) And MouseHit(1) save() EndIf ;Ladem: If ImagesOverlap(cursor,x_maus,y_maus,b2,x_laden,y_laden) And MouseHit(1) End EndIf ;Ladem: If ImagesOverlap(cursor,x_maus,y_maus,b6,x_beenden,y_beenden) And MouseHit(1) End EndIf Setzt man nun für Mousehit(1) bei der zweiten abfrage Mousehit(2) ein, geht das! Aber es soll ja lles mit der linken Taste gehn. Ansonsten habe ich im Editor ein Flushmouse was am Ende der Hauptschleife vor dem Flip steht. ![]() ![]() |
||
~ Hey Ho Let's Go ~ |
![]() |
lucifer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte das Problem mit keyhit(). Ich hab das dann so gemacht:
Code: [AUSKLAPPEN] If moushit(1) If ImagesOverlap(cursor,x_maus,y_maus,b3,x_speichern,y_speichern) save() EndIf ;Ladem: If ImagesOverlap(cursor,x_maus,y_maus,b2,x_laden,y_laden) And MouseHit(1) End EndIf ;Ladem: If ImagesOverlap(cursor,x_maus,y_maus,b6,x_beenden,y_beenden) And MouseHit(1) End EndIf End if Bei mir hat es dann gelklappt. |
||
Cloud |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] MHit = MouseHit(1) ;Speichern: If ImagesOverlap(cursor,x_maus,y_maus,b3,x_speichern,y_speichern) And MHit = 1 save() EndIf ;Ladem: If ImagesOverlap(cursor,x_maus,y_maus,b2,x_laden,y_laden) And MHit = 1 End EndIf ;Ladem: If ImagesOverlap(cursor,x_maus,y_maus,b6,x_beenden,y_beenden) And MHit = 1 End EndIf Probier das mal so, sollte gehen |
||
Duron 1200 | 256 RAM | Geforce 2 TI |
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke cloud, es geht 8)
ist ech komischer fehler ... |
||
~ Hey Ho Let's Go ~ |
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmmm....hab nun folgendes:
If MouseHit(1) Mhit = 1 EndIf das klapt auch gut, aber wenn man nun im mapeditor rum malt, und dann über die buttons geht, geschehen die sachen der buttons automatisch. wie kann ich das nun eingrenzen ..... ![]() |
||
~ Hey Ho Let's Go ~ |
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hab schon die lösung! einfach den bereich der buttons eingrenzen:
Code: [AUSKLAPPEN] If MouseHit(1) If MouseX() > 919 And MouseX() < 1011 Mhit = 1 EndIf EndIf als beispiel ;D |
||
~ Hey Ho Let's Go ~ |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lass es halt wie er es geschrieben hat:
Code: [AUSKLAPPEN] MHit=MouseHit(1) Dann geht das auch. Ein komischer Fehler ist das nicht, weil MouseHit() die Anzahl der Klicks zurückgibt und somit nach deren Abfrage natürlich 0 ist.
|
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
dubitat |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ hubsi
da hast du wohl was falsch verstanden... er will ja eine aktion immer nur dann wenn mousehit = 1 ist... |
||
Erare humanum est - Irren ist Menschlich |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau das macht ja der Code von Cloud ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, ich hab das bei mir mit dem selbstauslösenden Buttons so gelöst. Hab 2 Funktionen geschrieben für Mousehit und mousedown.
Am Anfang deiner Hauptschleife schreibst du: Code: [AUSKLAPPEN] If MouseHit(1) Then mouse_hit_1=True : mouse_down_1=MilliSecs() If MouseHit(2) Then mouse_hit_2=True : mouse_down_2=MilliSecs() und am Ende: Code: [AUSKLAPPEN] mouse_hit_1=False mouse_hit_2=False (Natürlich könnte man auch das in eine Funktion packen) und die Funktionen dazu sehen so aus: Code: [AUSKLAPPEN] Function Mouse_Hit(taste) If taste=1 If Mouse_hit_1=True Then mouse_hit_1=False : mouse_down_change=0 : Return(True) EndIf If taste=2 If Mouse_hit_2=True Then mouse_hit_2=False : mouse_down_change=0 : Return(True) EndIf Return False End Function Function Mouse_Down(taste,verzoegerung=300) Local m_d_1, m_d_2 If Mouse_Hit(1) mouse_down_change=0 EndIf If MouseDown(1) Then m_d_1=True If MouseDown(2) Then m_d_2=True If taste=1 If m_d_1 And (MilliSecs()-mouse_down_1>verzoegerung) And (mouse_down_change=0) Return True EndIf If Not MouseDown(1) mouse_down_1=MilliSecs() mouse_down_change=1 EndIf Else If taste=2 If m_d_2 And (MilliSecs()-mouse_down_2>verzoegerung) Return True EndIf If Not MouseDown(1) mouse_down_2=MilliSecs() mouse_down_change=2 EndIf EndIf Return False End Function Damit kannst du dann sogar für Mousedown angeben nach wieviel ms die Funkion ein True liefern soll. Dann kannst du halt ganz normal if Mouse_Hit(1) then...... benutzen. |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group