# == F7截图 ~ by satgo1546 ==
# 使用本脚本后在游戏所有场景中均可按下F7进行截图(此键可自行设定)。
# 截图后的图片存放在游戏目录Snapshots文件夹下。
# 注意:本脚本需要dant的Bitmap→PNG文件脚本,如果没有请自行添加= =
SNAPSHOT_BUTTON = :F7
# ↑ 截图所用的按键,RM的Input只支持F5~F9,F9已经被Debug窗口占用了,自己看着办吧= =
F7SNAPSHOT_FNFORMAT = "%Y%m%d_%H%M%S_%%"
# ↑ 截图保存的文件名格式,%%会替换为一秒内的截图编号,详细格式请看F1→RGSS参考→内置类→Time→strftime下的说明
# (不过似乎由于截图需要时间,因此%%不是非常必要的,但建议使用)
F7SNAPSHOT_SE = ["Item3", 80, 100]
# ↑ 截图后的提示声文件名(SE)、音量、音调
#==============================================================================
# ■ Scene_Base
#==============================================================================
class Scene_Base
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
alias upd_satgo_f7snap update
def update
upd_satgo_f7snap
update_f7snap
end
#--------------------------------------------------------------------------
# ● 检查F7键
#--------------------------------------------------------------------------
def update_f7snap
write_snap_file if Input.trigger?(SNAPSHOT_BUTTON)
end
#--------------------------------------------------------------------------
# ● 写截图文件
#--------------------------------------------------------------------------
def write_snap_file
snap = Graphics.snap_to_bitmap
Dir.mkdir("Snapshots") unless FileTest.exist?("Snapshots") and FileTest.directory?("Snapshots")
snap.save_png(mksnapname)
Audio.se_play("Audio/SE/#{F7SNAPSHOT_SE[0]}", F7SNAPSHOT_SE[1], F7SNAPSHOT_SE[1])
end
#--------------------------------------------------------------------------
# ● 生成截图文件名
#--------------------------------------------------------------------------
def mksnapname
s = Time.now.strftime(F7SNAPSHOT_FNFORMAT)
i = 1
i += 1 while FileTest.exist?("Snapshots/#{s.gsub(/\%/, i.to_s)}")
return "Snapshots/#{s.gsub(/\%/, i.to_s)}.png"
end
end