照着Scene_Map里的call_menu语句写了段按键呼出任务界面的脚本
[pre lang="ruby"]class Scene_Map < Scene_Base
alias x20150815_update_scene update_scene
def update_scene
x20150815_update_scene
update_call_task unless scene_changing?
end
def update_call_task
if $game_system.menu_disabled || $game_map.interpreter.running?
@task_calling = false
else
@task_calling ||= Input.trigger?(:X)
SceneManager.call(Scene_Tan_Task) if @task_calling && !$game_player.moving?
end
end
end
[/pre]
进游戏发现按下A可以进入界面,但Esc退出来瞬间又会进入该界面,百思不得其解。
然后发现@task_calling ||= Input.trigger?(:X)这句里的||=看不太懂,去百度了下发现"a ||= b"的展开式为: "if a then a else a = b end"
还是看不懂...
但是感觉直接写成@task_calling = Input.trigger?(:X)好像还挺说得通的,就去掉了||,进游戏发现还真的就没问题了。。。