我正在开发一个游戏,我需要从Case跳到另一个。例如,如果玩家在方框5中,则化身需要移动到方框9中。任何帮助都将受到高度赞赏。
Case 5
OBJETO_ATERIOR = R4
OBJETO_ACTUAL = R5
OBJETO_ANTERIOR_INVERSO = R6
'needs to jumpo to Case 9
gif_loro.Visible = False
gif_puppy.Visible = False
gif_mono.Visible = False
gif_oca5.Visible = True`
答案 0 :(得分:1)
请花点时间阅读有关[mcve]的信息。就目前而言,您提供的代码似乎对您的问题没有任何帮助。
尽管猜测是一个答案,但是您可以将Case 9
块中的代码提取到它自己的Sub中,然后从Case 9
块和{{1}中的适当点进行调用}块。优雅的解决方案,但这可能是您唯一的选择。
因此,看一个例子,假设您的代码看起来像这样
Case 5
您可以像这样在Select Case x
Case 1
'case 1 code
Case 2
'case 2 code
Case 3
'case 3 code
Case 4
'case 4 code
Case 5
'case 5 code
'jump to case 9 code
Case 6
'case 6 code
Case 7
'case 7 code
Case 8
'case 8 code
Case 9
'case 9 code
End Select.
块中创建一个包含代码的子程序
Case 9
现在您可以将 Private Sub Case9Code()
'case 9 code
End Sub
块重写为..
Select Case
答案 1 :(得分:0)
如果我得到的是您要的内容,例如goto
语句(在VB.NET中不可用)。这也表明设计不佳,因此我可以提出一个重构的想法。
播放器对象可能包含一个move
子,在移动空格时会调用该子。此move
也可能引发一个事件。化身对象可以包含一个moveListener
子项,该子项侦听要引发的move事件,并具有switch语句以确定如何处理化身运动。由于VB.NET事件可以包含参数,因此播放器移动到的空间可以包含在参数中;这样就产生了一种事件处理设计,其中玩家的动作被视为一个事件,并且化身对此发生反应。