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

Project1

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

[已经解决] 请问如何在游戏进程中截图,并且之后会显示截图。

[复制链接]

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

跳转到指定楼层
1
发表于 2013-9-21 10:48:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如:在游戏时间在20分钟时,截图一张到Pictures,命名为截图1
在游戏时间在40分钟时,截图一张到Pictures,命名为截图2
以此类推······

游戏完结时,用事件回放这些截图。

请问要怎么才能做到?
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

Lv3.寻梦者

梦石
0
星屑
3846
在线时间
1966 小时
注册时间
2013-1-3
帖子
9536
2
发表于 2013-9-21 12:31:55 | 只看该作者
可以参考截图存档的原理,加上计时器的操作应该可以
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

3
 楼主| 发表于 2013-9-21 15:18:09 | 只看该作者
紫英晓狼1130 发表于 2013-9-21 12:31
可以参考截图存档的原理,加上计时器的操作应该可以

计时器操作跟游戏时间不是一个概率

点评

哦,对了,是游戏时间,在新工程里有~  发表于 2013-9-21 16:17
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

4
发表于 2013-9-21 16:43:07 | 只看该作者
本帖最后由 kuerlulu 于 2013-9-21 17:16 编辑

来看看截图脚本吧 < 好喜欢这种语气233
  1. #===============================================================================
  2. # 目标:调教screenshot.dll
  3. # 说明:hy扒自截图存档脚本
  4. #===============================================================================
  5. # ■来设置存放截图文件夹吧(/代替\\哦~)■注意如果不存在此文件夹截图就无效
  6. DIR = "Screenshot/"
  7. # 主模块 Screen API ★方法:Screen::shot★
  8. module Screen
  9.   @i = 1 # 又要玩迭代了
  10.   @screen = Win32API.new 'screenshot', 'Screenshot', %w(l l l l p l l), ''
  11.   @readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
  12.   @findwindow = Win32API.new 'user32', 'FindWindowA', %w(p p), 'l'
  13.   module_function
  14.   def shot(file = "shot", typ = 1) # 默认文件名是"shot"可以改哟
  15.     if typ == 0
  16.       typname = ".bmp"
  17.     elsif typ == 1
  18.       typname = ".jpg"
  19.     elsif typ == 2
  20.       typname = ".png"
  21.     end
  22.     dir = DIR
  23.     # ★ 下面这行是重点 能自动更名 我TM竟然想了1小时才想出来
  24.     @i += 1 while FileTest.exist?(file_name = dir + file.to_s  + @i.to_s + typname.to_s)
  25.     file_name = dir + file.to_s  + @i.to_s + typname.to_s # 生成带路径的文件名
  26.     #names = File.basename(Dir["#{DIR}/*.jpg"].to_s) # 来获取文件名吧(不带路径)
  27.     @screen.call(0,0,640,480, file_name, handel, typ) # call出截图
  28.   end
  29.   def handel
  30.     game_name = "\0" * 256
  31.     @readini.call('Game','Title','',game_name,255,".\\Game.ini")
  32.     game_name.delete!("\0")
  33.     return @findwindow.call('RGSS Player',game_name)
  34.   end
  35. end
复制代码
以上就是传说中的截图脚本的全部内容 只需要一句Screen::shot就能保存截图到指定目录下
对了 还差一个screenshot.dll screenshot.rar (48.16 KB, 下载次数: 59) 放到根目录 别忘了创建对应脚本中设置的文件夹
那么
试试放到Scene_Map里面吧
  1.   #--------------------------------------------------------------------------
  2.   # ● 刷新画面
  3.   #--------------------------------------------------------------------------
  4.   def update
  5.     # ■来定时截图吧■
  6.     if (Graphics.frame_count % 48000) == 0
  7.       Screen::shot
  8.     end
  9.     ..........
  10.   end
复制代码
48000 = 20 * 60 * 40(fps)
不知道为什么使用Graphics.frame_count计算的时候必须用括号,不过确实是可行
那么关键的截图部分完成了,显示图片什么的用文件名+@i什么的不是很简单摸
↑我记得好像回答过这种问题
我觉得我发现了优化截图存档脚本的正确姿势!【滚【这样随便坐多少个存档点都没问题的说

评分

参与人数 2星屑 +105 收起 理由
myownroc + 75 认可答案
美丽晨露 + 30 谢谢,先去测试一下

查看全部评分


  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
59 小时
注册时间
2012-10-15
帖子
16
5
发表于 2013-9-21 16:55:39 | 只看该作者
好东西神马的,小新是不会错过的
.
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

6
发表于 2013-9-21 16:56:11 | 只看该作者
那要看你的游戏存档档位有多少个···多了的话图片会乱的

点评

这不是要存档!没看到只有截图么= =  发表于 2013-9-21 16:59
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
7
发表于 2013-9-21 17:20:15 | 只看该作者
有结局总有剧情吧~!
测试的时候,自己去截几张图,显示出来
不需要脚本
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

8
 楼主| 发表于 2013-9-21 17:54:42 | 只看该作者
恋′挂机 发表于 2013-9-21 17:20
有结局总有剧情吧~!
测试的时候,自己去截几张图,显示出来
不需要脚本 ...

用系统截游戏图······
结局显示的图片由玩家的进程决定······
不是单一的一张图片,而是变化多端的效果。
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

9
 楼主| 发表于 2013-9-21 19:17:47 | 只看该作者
定时存档.rar (237.08 KB, 下载次数: 42)

@kuerlulu

刚刚测试了一会,发现截不出截图出来······
不知道是怎么回事?另外,这里是怎么自定图片文件名字的?
再另外,这个效果是每在游戏中的20分钟截图一次吗?
游戏关闭之后,这个计数会不会被重置?
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

10
发表于 2013-9-21 20:03:11 | 只看该作者

RE: 请问如何在游戏进程中截图,并且之后会显示截图。

本帖最后由 kuerlulu 于 2013-9-21 20:18 编辑
美丽晨露 发表于 2013-9-21 19:17
@kuerlulu
刚刚测试了一会,发现截不出截图出来······

不排除脚本常识错误(爪机也不知道你怎么弄的):其实是加了一个判断(3行)放到update里;
那个截图脚本主体就放到main前啦;
48000当然就是20分钟。。你不要真心去等,改成40(一秒一截)看看,然后是用的系统计数器所以除非重新开始游戏(读档后时间没问题)
文件夹名字一定要对,它不会自动创建文件夹。命名规则是设定的文件名(默认是"shot")加一个从1开始的数字,所以读取这些图片也很方便了
另外我觉得你是要特定时间截图,在特定地点事件里加一个那句截图方法就行了
明明最大的亮点是自动更名的说

  -fk: -azogi:
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-29 23:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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