设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2454|回复: 2
打印 上一主题 下一主题

[讨论] 能不能利用游戏里的截图来制作STAFF?

[复制链接]

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

跳转到指定楼层
1
发表于 2014-12-31 14:27:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 精灵使者 于 2014-12-31 14:28 编辑

也就是利用你在游戏里的精彩一瞬间来制作最后游戏团队字幕的背景,例如和三国志赤壁之战那样。
结局的所有图片都来源于你战胜BOSS的所有截图集合。
现在唯一的一件事是:
你不知道截图的内容,如何调用截图来做最后的STAFF?
另:这里的截图不是用截图工具放进去的,而是系统根据游戏进程自动截图
请高手指教。

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
20950
在线时间
9333 小时
注册时间
2012-6-19
帖子
7106

开拓者短篇九导演组冠军

2
发表于 2014-12-31 17:23:27 | 只看该作者
  1. # 保存屏幕截图

  2. module M5SS20141231
  3.   def self.shot
  4.     $snap_shot.dispose if $snap_shot
  5.     $snap_shot = Graphics.snap_to_bitmap
  6.   end
  7. end

  8. # 快速储存Bitmap的Marshal By 柳之一

  9. class Font
  10.   def marshal_dump
  11.   end
  12.   def marshal_load(obj)
  13.   end
  14. end
  15. class Bitmap
  16.   RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
  17.   RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')
  18.   def _dump(limit)
  19.     data = "rgba" * width * height
  20.     RtlMoveMemory_pi.call(data, address, data.length)
  21.     [width, height, Zlib::Deflate.deflate(data)].pack("LLa*")
  22.   end
  23.   def self._load(str)
  24.     w, h, zdata = str.unpack("LLa*")
  25.     b = self.new(w, h)
  26.     RtlMoveMemory_ip.call(b.address, Zlib::Inflate.inflate(zdata), w * h * 4)
  27.     return b
  28.   end
  29.   def address
  30.     buffer, ad = "rgba", object_id * 2 + 16
  31.     RtlMoveMemory_pi.call(buffer, ad, 4)
  32.     ad = buffer.unpack("L")[0] + 8
  33.     RtlMoveMemory_pi.call(buffer, ad, 4)
  34.     ad = buffer.unpack("L")[0] + 16
  35.     RtlMoveMemory_pi.call(buffer, ad, 4)
  36.     return buffer.unpack("L")[0]
  37.   end
  38. end

  39. # 截图保存到存档中

  40. class << DataManager
  41.   alias m5_20121231_load_normal_database load_normal_database
  42.   def load_normal_database
  43.     m5_20121231_load_normal_database
  44.     $snap_shot = nil
  45.   end
  46.   alias m5_20141231_make_save_contents make_save_contents
  47.   def make_save_contents
  48.     contents = m5_20141231_make_save_contents   
  49.     contents[:snapshot] = $snap_shot   
  50.     contents
  51.   end
  52.   alias m5_20141231_extract_save_contents extract_save_contents
  53.   def extract_save_contents(contents)
  54.     m5_20141231_extract_save_contents(contents)
  55.     $snap_shot = contents[:snapshot]
  56.   end
  57. end

  58. # 测试脚本效果的界面

  59. class Scene_Snap_Test < Scene_Base  
  60.   def start
  61.     super
  62.     @sprite = Sprite.new
  63.     bitmap = $snap_shot || Bitmap.new(1,1)
  64.     @sprite.bitmap = bitmap.clone
  65.     @sprite.x -= 10
  66.   end
  67.   def update
  68.     super
  69.     return_scene if Input.trigger?(:B)
  70.   end
  71.   def terminate
  72.     super
  73.     @sprite.dispose
  74.   end
  75. end

  76. # F5截图,F6打开测试界面

  77. class << Graphics
  78.   alias m5_20141231_update update
  79.   def update
  80.     m5_20141231_update
  81.     if Input.press?(:F5)
  82.       M5SS20141231.shot
  83.     elsif Input.trigger?(:F6)
  84.       return if SceneManager.scene.is_a? Scene_Snap_Test
  85.       SceneManager.call(Scene_Snap_Test)
  86.     end
  87.   end  
  88. end
复制代码
RMVA用

点评

这些代码只是一个范例,并不是能够使用在游戏中的脚本  发表于 2015-1-2 11:07
那么在剧情中如何启用该脚本呢?  发表于 2015-1-2 10:31
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

3
 楼主| 发表于 2014-12-31 23:57:27 | 只看该作者
本帖最后由 精灵使者 于 2015-1-1 12:04 编辑

如果调用同一个文件名的图片,里面的内容会刷新么?
精灵的想法是这样的:
建立一系列空白图片来做STAFF,然后每关的需要的截图就截在这些空白图片里……
但是不知道STAFF能及时更新成截图否。

点评

看来我得使用Cache.clear来更新缓存了  发表于 2015-1-1 16:21
事件的显示图片是调用了Cache的, 所以即使外部改变了图片游戏内也不会即时更新【但是你可以自己改Cache加个判断文件时间自动更新  发表于 2015-1-1 16:20
你居然一直都在说bitmap。。。我说的事件的显示图片  发表于 2015-1-1 15:26
只要不是用了Cache建立缓存, 直接用Bitmap.new是可以的  发表于 2015-1-1 13:10
[图片文件]->[Bitmap对象]->[图片改变]->[Bitmap对象没变]->[Bitmap.new]  发表于 2015-1-1 13:09
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-26 14:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表