2016-04-22 16 views
0

zu verkürzen Ich bin ziemlich neu zu programmieren, so dass dies eine ziemlich grundlegende Frage sein kann. Aber ich brauche Hilfe, um diesen sich wirklich wiederholenden Code zu verkürzen. Ich arbeite an einem Kartenspiel, das ungefähr zweihundert verschiedene Kreaturen, zwei Decks (dein und das des Feindes) und 10 Slots in jedem Deck hat (was 10 Kreaturen pro Deck bedeutet).Brauchen Sie Hilfe, sich wiederholenden Vb-Code

Im Deck Builder Teil meiner UI, wenn Sie tatsächlich eine Kreatur zu deinem Deck hinzufügen, tut es dies:

If CritName = "Monarch" Then 
    YourCreature1PictureDB.Image = DHBattleSim.My.Resources.Monarch_Icon 
    YourCreature1Group.BackColor = Color.Transparent 
End If 

Wenn die Kreatur „Ariel“ ist, dann würde es

sein
If CritName = "Ariel" Then 
    YourCreature1PictureDB.Image = DHBattleSim.My.Resources.Ariel_Icon 
    YourCreature1Group.BackColor = Color.Transparent 
End If 

usw. Nun stell dir vor, es gibt zweihundert dieser Aussagen, jede für eine andere Kreatur. Dann muss ich diesen riesigen Code kopieren und alle 1en zu 2en ändern, und wieder die 2er zu 3en usw. ändern. Nachdem ich die 10er beendet habe, müsste ich ALLES kopieren und alle ändern die "YourCreature" -Sätze zu "EnemyCreature". Das ist offensichtlich extrem repetitiv und mühsam. Ich weiß über die Funktion Suchen und Ersetzen, aber ich würde lieber den Code selbst verkürzen, so dass ich nicht darauf zurückgreifen muss.

Antwort

3

Sie können Code verwenden, wie diese

Dim resources As Object = DHBattleSim.My.Resources.ResourceManager 
YourCreature1PictureDB.Image = resources.GetObject(yourVariable & "_Icon") 

Dies

YourCreature1Group.BackColor = Color.Transparent 

folgen können; in Ihrem ursprünglichen Code muss es nicht in jedem if erscheinen, wenn es immer auf Transparent gesetzt ist.

+0

Awesome! Das hat perfekt funktioniert. Vielen Dank :) – Lord

1

erstellen Unter zum Einstellen des Bildes:

Public Sub SetCreatureImage(critName As String)   
     YourCreature1PictureDB.Image = DHBattleSim.My.Resources.ResourceManager.GetObject(critName + "_Icon") 
     YourCreature1Group.BackColor = Color.Transparent 
    End Sub