似乎是这个问题@cinderelmini
update方法在判断按键的时候,后面必须跟return,否则会连续判断,效果就和连点差不多。
def update if @command_window.active update_command end if @status_window.active update_status end # other updates end def update_command if Input.trigger?(Input::C) # deactivate command window and activate status window end # other input events end def update_status if Input.trigger?(Input::C) case @window_commond.index when 0 #切换到装备画面 $scene = Scene_Equip.new end end end
def update
if @command_window.active
update_command
end
if @status_window.active
update_status
end
# other updates
end
def update_command
if Input.trigger?(Input::C)
# deactivate command window and activate status window
end
# other input events
end
def update_status
if Input.trigger?(Input::C)
case @window_commond.index
when 0
#切换到装备画面
$scene = Scene_Equip.new
end
end
end
脚本这样写是不对的,当按下C键的时候,update_command和update_window会同时判断(因为这出现在同一次update中),因此会出现连点效果。
解决办法就是每次update之后要及时return掉,这样才不会进行后面的判断。
def update if @command_window.active update_command return # <- 'return' can't be ignored end if @status_window.active update_status return # <- 'return' can't be ignored end end
def update
if @command_window.active
update_command
return # <- 'return' can't be ignored
end
if @status_window.active
update_status
return # <- 'return' can't be ignored
end
end
同样,update_status的每个按键分歧,最好都要在末尾return一下。防止玩家同时按下两个按键。 |