2011-11-06 73 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