我正在为菜单项目设计用户界面。我尝试使用for
循环,例如:
for i in 0..8
i=i
end
for k in 0..7
k=k
end
if @selection==i && @unlock==k && $switches[(what do I do here?)]==?????
do thing
每当用户按下Y键时,它都会关闭一个功能;如果@selection==1
突出显示并且用户按下"Y"键,则应关闭该特定位置的相应开关。 @unlock
只是用来表达,除非此全局布尔值设置为 true,否则用户可以按"Y"并打开或关闭此开关。
首先,您可以将每个更改为如下所示的内容:
BITMAP_PATH = "Graphics/Pictures/Input Map/switch"
if @selection==1 && @unlock1
pbSEPlay("BW2MenuChoose",65)
bitmap_switch = $switches[310] ? 'off' : 'on' # sets path to off/on
@graphics["switch"].setBitmap(BITMAP_PATH + bitmap_switch)
!$switches[310] # it changes value of boolean to opposite value
end
只有一个条件的选择可以这样写:
if @selection==0 && @unlock0
pbSEPlay("buzzer",65)
end
您也可以尝试为@selection编写大小写表达式。也许你可以把它干得更多,但我真的不明白每个@unlock的用途。
编辑:
BITMAP_PATH = "Graphics/Pictures/Input/switch"
SELECTION_SWITCHES = [nil, 310, 300, 339, 338, 330, 318]
def pbChangeSwitch
case
when 0
case @selection
when 0,7
pbSEPlay("buzzer",65) if instance_variable_get("@unlock#{@selection}")
when 1..6
if instance_variable_get("@unlock#{@selection}")
pbSEPlay("BW2MenuChoose",65)
bitmap_switch = $switches[SELECTION_SWITCHES[@selection]] ? 'off' : 'on'
@sprites["switch"].setBitmap(BITMAP_PATH + bitmap_switch)
index = SELECTION_SWITCHES[@selection]
$switches[index] = !$switches[index]
end
end
Graphics.update
请在最后一行添加$
。 bitmap_switch
不能true
或false
,因为你把它加到BITMAP_PATH
,所以它必须是"关闭"或"打开"。