ich versuche mich gerade an einem kartenspiel Namens Patience, Patience ist ähnlich dem
Windoofs-Solitäre.
Okey, die Programmlogig steht, jetzt geht es an die grafische Umsetzung! Die Karten werden auf die Oberfläche „gezeichnet“. Diese Karten sollen aber mit der Maus bewegt werden können. Auf alle Fälle die letzte Karte einer Spalte, ansonsten wenn gewisse kritereine erfüllt sind sollen mehrere karten einer Splate bewegt, verschoben werden können.
Wie kann ich es nun Steuern, dass eine Action ausgelöst wird wenn eine Karte an ein andere Spalte angelegt wird?
und wie löse ich das: die Karte kann mit der Maus aufgenommen werden und wieder an einer anderen Spalte abgelegt werden?
Hallo Stefan…
das hab ich mich auch schon gefragt… wir wollten ein monopoly-Spiel schreiben… Unsere Idee war, Buttons mit Bildern zu benutzen. Is aber nicht so toll… geht bestimmt auch schöner…
gruss ruwen
ich dank mal das zeichnen wird nicht ganz einfach sein. Also ich würde so spontan auf jeden Fall eine Klasse „Karte“ machen, die die genauen koordinaten der Karte enthält. Für jede Karte eine Instanz davon.
Auf dem Mainpanel kannst dann bei MouseMove-Events alle Karten-Instanzen durchrödeln und abfragen, ob sich der Mauszeiger auf einer Karte befindet. Ich würde in die Kartenklasse eine Methode „isOver“ oder so ähnlich machen, die einfach die Mauskoordinaten übergeben bekommt und dann true zurückgibt, wenn die Maus auf der Karte ist und false wenn nicht.
Jetzt brauchst bloß noch ne logik, wenn mehrere Karten aufeinander liegen. Entweder du hast in der Kartenklasse eine Variable, die die Position im Stapel angibt (Wird wahrscheinlich schwierig sein, diese zu pflegen) oder du beachtest immer nur die oberste Karte.
Naja, da kannst noch ne Weile drüber brüten
Viele Späße