Vielleicht denke ich auch einfach viel zu weit...
Tust du vermutlich. Keep it simple.
Versuche es dir mal das was passieren soll als Ablauf vorzustellen. Ganz ohne Code.
Das könnte zB so aussehen:
Spieler klickt auf Karte
UI zeigt gewählte Karte als "markiert" an
Spieler klickt auf gegnerische Karte
UI "zieht" die gewählte Karte auf die gegnerische Karte
Was bedeutet das für dein UI?
Wenn dein Code einen Klick auf eine Karte registriert, dann sagst du deinem UI, welche Karte selektiert ist. Und wenn eine Karte selektiert ist, dann wird diese entsprechend angezeigt:
Pseudocode für das Karte Auswählen:
|
C#-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Card selectedCard;
void SetSelectedCard(string cardID)
{
selectedCard = new Card(cardID);
}
void Draw(SpiteBatch spriteBatch)
{
if(selectedCard != null)
spriteBatch.Draw(selectedCard.Texture, selectedCardPosition, Color.White);
//Zeichne Rest vom UI
}
|
Wenn jetzt dein Computergegner am Zug ist, passiert genau das gleiche. Eine Karte wird selektiert, wird gezogen, etc.