Project1

标题: 按下F7自动截图到文件(有点仿Minecraft的感觉 [打印本页]

作者: satgo1546    时间: 2013-7-16 14:19
标题: 按下F7自动截图到文件(有点仿Minecraft的感觉
本脚本的功能:在游戏任何场景按下F7(可以改)可以截图到文件。包括标题、地图(对话中也可)、菜单等界面,因为是改Scene_Base的,所以应该所有场景都适用=w=
目前截图后没有提示……只有一个声音发出
截图的存放目录是Screenshots/,懒得放设置了……就这样吧。比较好的一点是,不用手动建立这个目录,脚本会自动建立哦~


↑截图文件夹,可以看到图都是544×416的无边框图

↑菜单照样能截

用法说明:截图用脚本的传送门(没有此脚本请先贴上= =)
然后把下面的脚本贴上:(设置都在里面)
RUBY 代码复制
  1. # == F7截图 ~ by satgo1546 ==
  2. # 使用本脚本后在游戏所有场景中均可按下F7进行截图(此键可自行设定)。
  3. # 截图后的图片存放在游戏目录Snapshots文件夹下。
  4. # 注意:本脚本需要dant的Bitmap→PNG文件脚本,如果没有请自行添加= =
  5.  
  6. SNAPSHOT_BUTTON = :F7
  7. # ↑ 截图所用的按键,RM的Input只支持F5~F9,F9已经被Debug窗口占用了,自己看着办吧= =
  8. F7SNAPSHOT_FNFORMAT = "%Y%m%d_%H%M%S_%%"
  9. # ↑ 截图保存的文件名格式,%%会替换为一秒内的截图编号,详细格式请看F1→RGSS参考→内置类→Time→strftime下的说明
  10. #   (不过似乎由于截图需要时间,因此%%不是非常必要的,但建议使用)
  11. F7SNAPSHOT_SE = ["Item3", 80, 100]
  12. # ↑ 截图后的提示声文件名(SE)、音量、音调
  13.  
  14. #==============================================================================
  15. # ■ Scene_Base
  16. #==============================================================================
  17. class Scene_Base
  18.   #--------------------------------------------------------------------------
  19.   # ● 更新画面
  20.   #--------------------------------------------------------------------------
  21.   alias upd_satgo_f7snap update
  22.   def update
  23.     upd_satgo_f7snap
  24.     update_f7snap
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 检查F7键
  28.   #--------------------------------------------------------------------------
  29.   def update_f7snap
  30.     write_snap_file if Input.trigger?(SNAPSHOT_BUTTON)
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 写截图文件
  34.   #--------------------------------------------------------------------------
  35.   def write_snap_file
  36.     snap = Graphics.snap_to_bitmap
  37.     Dir.mkdir("Snapshots") unless FileTest.exist?("Snapshots") and FileTest.directory?("Snapshots")
  38.     snap.save_png(mksnapname)
  39.     Audio.se_play("Audio/SE/#{F7SNAPSHOT_SE[0]}", F7SNAPSHOT_SE[1], F7SNAPSHOT_SE[1])
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 生成截图文件名
  43.   #--------------------------------------------------------------------------
  44.   def mksnapname
  45.     s = Time.now.strftime(F7SNAPSHOT_FNFORMAT)
  46.     i = 1
  47.     i += 1 while FileTest.exist?("Snapshots/#{s.gsub(/\%/, i.to_s)}")
  48.     return "Snapshots/#{s.gsub(/\%/, i.to_s)}.png"
  49.   end
  50. end
然后就能直接用F7截图了。
那么为什么要用这个脚本呢?因为……
如果你还是不知道怎么用,范例: F7截图.rar (304.53 KB, 下载次数: 144) (没有VA坑爹的巨大的DLL,请自行添加)
作者: end55rpg    时间: 2013-7-16 15:26
话说Prt Scr Sys 是printscreensystem知道不?
作者: feizhaodan    时间: 2013-7-20 11:09
等一下第一次发现有save_png这种函数囧
以为是默认自带函数兴奋了囧
没看见前提脚本囧
作者: xggzga117    时间: 2013-7-20 15:04
不错,收下了。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1