gpt4 book ai didi

excel - 对象/类的多个实例

转载 作者:行者123 更新时间:2023-12-04 21:53:29 25 4
gpt4 key购买 nike

我正在用 VBA excel 制作一个简单的游戏,比如 Rogue 或 Nethack。它发生在一个 gui 窗口中。我有一个数组来保存比赛 field 等,还有一个玩家类,其中存储了他们的坐标和一些可以移动的潜艇等。

然后我创建了一个 NPC随机移动的类。我以通常的方式声明它,Dim NPC as NPCclass (在声明中)然后是 Set NPC = New NPCclass (在 sub 中,这似乎是必要的,但没有任何教程提到这一点?)到目前为止一切都很好,NPC由 ASCII 字符表示并执行我想要的操作。

但是,现在我想创建更多 NPCs间隔几圈后。但我不知道该怎么做。似乎对于我的 NPC 的每个额外实例, 我必须再做一次 Dim NPCxyz as NPCclass .

所以我尝试生成一个字符串,比如 "npc_name"包含下一个 NPC 的名称生成,如 NPC1NPC2等等。不出所料,如果我然后尝试 Dim npc_name As NPCclass VBA 不明白我想创建 NPCclass 的另一个实例npc_name 内的字符串作为它的名字。相反,它认为我想声明 npc_name再说一次,就像我说的 Dim npc_name As String早些时候。

如何创建更多使用同一类但在阵列/运动场周围独立移动的 NPC?我觉得我误解了一些明显的东西,因为我看过的教程都没有涉及到这一点。

最佳答案

只需创建一个对象数组...

Dim NPC(1 to 20) as NPCclass

For i = 1 to 20
Set NPC(i) = New NPCclass

'... your object init ...
NPC(i).SetSometing = 0
NPC(i).DoSomething()
Next i

如果以后你想增加列表,你只需要做类似的事情
ReDim Preserve NPC(50)

关于excel - 对象/类的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49700615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com