2017-10-20 1 views
0

Ich mache ein Blackjack-Spiel und es fällt mir schwer, ein Bild von den Karten zu bekommen, ohne "jedes einzelne Bild" hart zu codieren, um Werte zu übergeben.Ressourcenbilder dynamisch referenzieren

aktuelle Code (nicht gewünscht, aber funktioniert):

Public Function Return_Card(CardVal As String, CardSuit As String) As Image 
    If CardVal = "Ace" And CardSuit = "Clubs" Then 
     Return My.Resources.AceOfClubs 
    ElseIf CardVal = "Two" And CardSuit = "Clubs" Then 
     Return My.Resources.TwoOfClubs 
    ElseIf CardVal = "Three" And CardSuit = "Clubs" Then 
     Return My.Resources.ThreeOfClubs 
    ' Need the other 49 cards to complete deck 
    End If 
End Function 

Wunsch Code:

Public Function Return_Card(CardVal As String, CardSuit As String) As Image 
    ' Return any picture of a card based on what is being passed in CardVal and CardSuit 
    Return My.Resources.CardValOfCardSuit 
End Function 

Beule

+0

Für so etwas wie ein Kartenspiel Sie nicht wollen, laden sie von Ressourcen immer und immer wieder: Jedes Mal, wenn Sie es tun, erstellt ein neues Objekt, was dazu führen wird, dass Ihre App ausläuft. Laden Sie sie aus einer ImageList oder laden Sie sie aus Ressourcen in ein Array und verwenden Sie dieselben Bilder immer und immer wieder. [Grobes Kartenspiel] (https://stackoverflow.com/a/26532939/1070452) – Plutonix

+0

Versuchen Sie bitte nicht zu detailliert darüber zu gehen, wie ich meine Informationen speichern soll. Ich lege sie nach dem Erstellen der Objekte in ein Array. @Plutonix – Brandon

Antwort

1
Public Function Return_Card(CardVal As String, CardNum As String) As Image 
    Return My.Resources.ResourceManager.GetObject(CardVal + "Of" + CardNum) 
End Function 
Verwandte Themen