2011-11-06 69 views
0

我想在VB中製作一個二十一點遊戲。我想要做的是用每張卡片填充一個數組,以便隨機生成整數並使用這些整數從數組中拉出索引,基本上隨機選擇一張卡片。使用資源圖像填充數組

我的問題是,我似乎無法獲取資源文件夾中的圖像進入數組。我想使用For/Next循環來填充數組,因爲我寧願不將所有52個卡手動分配給數組。我試圖這樣做:

Dim CardArray(51) As Image 
Dim LoopIndexInteger As Integer 

For LoopIndexInteger = 0 To 51 
CardArray(LoopIndexInteger) = My.Resources.ResourceManager.GetObject(LoopIndexInteger) 
    Next 

我在哪裏出錯了?

回答

1

GetObject取得資源名稱,而不是索引。
您需要構建您的其中一個資源的名稱。

做到這一點最簡單的方法就是通過Card51命名資源Card0並調用GetObject("Card" & CInt(LoopIndexInteger))

編輯:您還可以遍歷My.Resources.ResourceManager.GetResourceSet(CultureInfo.CurrentCulture, false, true),但它可能不會是爲了。

+0

我曾希望避免重新命名資源。現在,他們被命名爲h7(7顆心)和d1(鑽石王牌)等等。通過這種方式,我可以通過查看文件名來判斷哪張卡。如果我將他們重命名爲Card0-51,我將無法知道哪張牌是哪一張,所以我將無法比較後面的值來確定手牌的贏者。我看到有一種叫做'幻數'的方法,它包含用於識別資源文件的數字。我可以以某種方式使用它嗎? – Kris

+0

@Kris:你誤解了幻數;他們與此無關。 – SLaks

+0

那不好!哈哈。我可能會按照你的建議重新命名資源,但將它們與卡的等級/值一起放入一個二維數組中。感謝您的指點..我一直在這一天的大部分時間工作,這讓我瘋狂!至少我有一些方向可以進來! – Kris