Probleme mit ImageRectCollide und Mousehit(1)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Gray Fox

Betreff: Probleme mit ImageRectCollide und Mousehit(1)

BeitragMo, Aug 07, 2006 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bastel grad an einem kleinen Kartenspiel, nun habe ich folgendes Problem:

Wenn die Maus über eine Karte fährt und der Spieler die Maus betätigt soll die Karte "gespielt" werden, ich habe das so gelöst:

Code: [AUSKLAPPEN]
If ImageRectCollide(maus,mx,my,0,xp1(1),yp1(1),rect_width,rect_height) Then
If handp1(1) > 0 Then
bild_aktiv = 2
If MouseHit(1) Then karte_spielen
End If
End If


Klicke ich nun "irgendwo" hin und fahre dann über die Karte, wird sie trotzdem gespielt, ich habe es schon mit einem "Flushmouse()" am Ende des Programms versucht (vor Flip) - mit dem Resulat, dass nix mehr ging.

(Macht doch keinen Unterschied, wenn ich diesen Code einfach sechsmal für jede Karte kopiert habe (und xp1(1) bzw. yp1(1) anpasse)?

Es muss doch eine Lösung für das Problem geben Confused
 

Gray Fox

BeitragMo, Aug 07, 2006 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Anscheinend habe ich die Antwort hier gefunden:

https://www.blitzforum.de/foru...hp?t=19202

Zitat:

Zitat:
Probiers mal so,

einmal ind der Hauptschleife Mousehit einer Variable zuweisen.

mouse = mousehit(1)

und dann bei der abfrage "mouse" verwenden.


Aber warum geht es so und warum nicht beim "normalen" Mousehit(1)?
 

Dreamora

BeitragMo, Aug 07, 2006 22:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil MouseHit die Anzahl MouseHits seit dem letzten Aufruf von MouseHit ausgibt. Wenn es mehr als 1x pro Schleifendurchlauf aufgerufen wird ist es fast unmöglich das ein neuer Hit stattgefunden hat.

Ganz im Unterschied zu MouseDown das nur sagt ob die Maus zu dem Zeitpunkt gedrückt war oder nicht.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Gray Fox

BeitragMo, Aug 07, 2006 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
Weil MouseHit die Anzahl MouseHits seit dem letzten Aufruf von MouseHit ausgibt. Wenn es mehr als 1x pro Schleifendurchlauf aufgerufen wird ist es fast unmöglich das ein neuer Hit stattgefunden hat.

Ganz im Unterschied zu MouseDown das nur sagt ob die Maus zu dem Zeitpunkt gedrückt war oder nicht.


Wieder was gelernt Smile

Aber sag mal, gibt es irgendwo ein Lexikon/Datenbank, in der manche solche "Besonderheiten" nachlesen kann?

Cardonic

BeitragMo, Aug 07, 2006 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
In der Hilfe, auf www.blitzbase.de oder du saugst dir die Onlinehilfe.

Übrigens ist dies keine Besonderheit, sondern die primäre Funktion dieses Befehls.

mfg Cardonic
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet.
 

Gray Fox

BeitragMo, Aug 07, 2006 23:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Cardonic hat Folgendes geschrieben:
In der Hilfe, auf www.blitzbase.de oder du saugst dir die Onlinehilfe.

Übrigens ist dies keine Besonderheit, sondern die primäre Funktion dieses Befehls.

mfg Cardonic


Mist steht ja da Very Happy

Aber danke für die Info Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group