加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
照着Scene_Map里的call_menu语句写了段按键呼出任务界面的脚本
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
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
进游戏发现按下A可以进入界面,但Esc退出来瞬间又会进入该界面,百思不得其解。
然后发现@task_calling ||= Input.trigger?(:X)这句里的||=看不太懂,去百度了下发现"a ||= b"的展开式为: "if a then a else a = b end"
还是看不懂...
但是感觉直接写成@task_calling = Input.trigger?(:X)好像还挺说得通的,就去掉了||,进游戏发现还真的就没问题了。。。
可问题是我这个写法是直接抄call_menu语句里的啊,为什么它用 ||= 就没事,我就一定要用=才会没问题?
@task_calling ||= Input.trigger?(:X)这句话到底执行的是什么内容?