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

Project1

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

[已经解决] 游戏找不到图片或声音也不停止,能做到吗?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
130
在线时间
137 小时
注册时间
2008-10-7
帖子
236
跳转到指定楼层
1
发表于 2012-2-21 01:04:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我游戏图很多,声音也多,难免有个遗漏,但只要有遗漏,游戏过程中找不到图了  找不到声音啦,就会提示,就会停止, 为了简便,能否有这样的脚本?让游戏即使找不到该图或声音也能继续啊?


谢谢指教!

Lv1.梦旅人

梦石
0
星屑
50
在线时间
237 小时
注册时间
2011-7-28
帖子
81
2
发表于 2012-2-21 08:50:16 | 只看该作者
有容错脚本可以解决这样的问题,但游戏制作过程中使用这样的脚本只会使你的游戏漏洞百出,一般建议游戏制作好后再放进去
看看网络,数不清的信息扑面而来,你知道了什么是冗余;看看每一天的生活,日复一日,许多的无奈,你理解了什么是缺陷;生命里充满了不可预知,明天将发生什么,谁也不知道,这就是动态。 ...
回复

使用道具 举报

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

3
发表于 2012-2-21 08:54:44 | 只看该作者
  1. #==============================================================================
  2. # ■ 容错脚本-> CMD辅助素材提取脚本                                      
  3. #------------------------------------------------------------------------------
  4. #  容错脚本             BY 轮回者
  5. #  CMD辅助素材提取脚本  BY DeathKing
  6. #  此脚本具有上述两个功能!
  7. #==============================================================================
  8. #  使用方法请参考萌芽游戏社中此工程相关的使用说明!
  9. #
  10. #  - 获取工程路径
  11. #    使用Windows浏览文件,直到可以直接看到Game.exe这个文件,然后直接复制
  12. #    这个地址,粘贴到$GAME_PATH,并将\替换为\\。
  13. #
  14. #  - 获取RTP路径
  15. #    方法一:打开注册表(“开始”->“运行”->regedt32.exe),
  16. #            HKEY_LOCAL_MACHINE\SOFTWARE\Enterbrain\RGSS\RTP
  17. #            这个名项的值给复制下来,粘贴到$RTP_PATH中,并把\变为\#    方法二:打开安装RMXP的文件夹,找到Standard文件夹的路径,把它复制到
  18. #            $RTP_PATH中,把\变为\#
  19. #  - 选择RTP
  20. #    将RTP选为“无”
  21. #  
  22. #  - 经行游戏
  23. #    点击“游戏测试”(快捷键F12)测试游戏,使每个素材都触发一次Error
  24. #    (因为没有素材,所以会提示“找不到****”这正是此脚本所需要的,触发的
  25. #    Eorry不会中断工程,而是通过容错脚本来得知需要的素材,再输出到文件中去
  26. #    因此,想要完全提取素材,必须使每个素材都发生一次Error。)
  27. #
  28. #  - 修改文件
  29. #    此时你会发现,文件夹下多了两个文件,打开这两个文件,先使用记事本自带的
  30. #    “查找、替换”功能将 / 替换为 \ 避免出错。
  31. #    * Notepad
  32. #      对于XP的记事本,请继续看:
  33. #      在文档的最后一行独行书写一个 pause 方便等会儿查看素材是否已提取。
  34. #      然后点击“文件”->“另存为” 这里文件名自定,但是将他写成这种格式:
  35. #      文件名.bat 且将编码变为 ANSI 的。
  36. #      现在关闭文件,并运行新创建的bat文件,如果看到了“已复制了*个文件”
  37. #      就说明素材已经提取成功。
  38. #    * Notepad2
  39. #      对于Vista的记事本2,请继续看:
  40. #      在文档的最后一行独行书写一个 pause 方便待会儿查看素材是否已提取。
  41. #      然后点击“文件”->“编码”->“ANSI”,并另存为“文件名自定.bat”
  42. #      运行这个新建的批处理文件就可以了。
  43. #      同样,如果看到了“已复制了*个文件”就说明素材已经提取成功了。
  44. #==============================================================================
  45. $GAME_PATH = "H:\\RMXP工程\\素材提取脚本"
  46. # 工程路径
  47. $RTP_PATH  = "H:\\RMXP\\RGSS\\Standard"
  48. # RTP路径

  49. $need_file_bitmap = []
  50. if FileTest.exist?("log_bitmap.txt")
  51. f = File.open("./log_bitmap.txt","r")
  52. $need_file_bitmap = f.read.split(/\n/)
  53. f.close
  54. end
  55. module Graphics
  56. @transition = method("transition")
  57. def self.transition(*arg)
  58.    begin
  59.      @transition.call(*arg)
  60.    rescue Errno::ENOENT
  61.      ary=[*arg]
  62.      filename=ary[1]
  63.      unless $need_file_bitmap.include?(filename)
  64.        $need_file_bitmap.push(filename)
  65.        f = File.open("./log_bitmap.txt","a")
  66.        f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "\\Graphics\\Transitions" + "\n")
  67.        f.close
  68.      end
  69.      @transition.call(ary[0])
  70.    end
  71. end
  72. end
  73. class Bitmap < Object
  74. alias ini initialize
  75. def initialize(*arg)
  76.    begin
  77.      ini(*arg)
  78.    rescue Errno::ENOENT
  79.      filename=[*arg][0]
  80.      unless $need_file_bitmap.include?(filename)
  81.        $need_file_bitmap.push(filename)
  82.        f = File.open("./log_bitmap.txt","a")
  83.       
  84.        filepath = "Graphics\\"
  85.        if filename.include?("Titles")
  86.          filepath = "Graphics\\Titles\\"
  87.        end
  88.        if filename.include?("Windowskins")
  89.          filepath = "Graphics\\Windowskins\\"
  90.        end
  91.        if filename.include?("Autotiles")
  92.          filepath = "Graphics\\Autotiles\\"
  93.        end
  94.        if filename.include?("Characters")
  95.          filepath = "Graphics\\Characters\\"
  96.        end
  97.        if filename.include?("Pictures")
  98.          filepath = "Graphics\\Pictures\\"
  99.        end
  100.        if filename.include?("Animations")
  101.          filepath = "Graphics\\Animations\\"
  102.        end
  103.        if filename.include?("Battlebacks")
  104.          filepath = "Graphics\\Battlebacks\\"
  105.        end
  106.        if filename.include?("Battlers")
  107.          filepath = "Graphics\\Battlers\\"
  108.        end
  109.        if filename.include?("Tilesets")
  110.          filepath = "Graphics\\Tilesets\\"
  111.        end
  112.        if filename.include?("Panoramas")
  113.          filepath = "Graphics\\Panoramas\\"
  114.        end
  115.        if filename.include?("Icons")
  116.          filepath = "Graphics\\Icons\\"
  117.        end
  118.        if filename.include?("Gameovers")
  119.          filepath = "Graphics\\Gameovers\\"
  120.        end
  121.        if filename.include?("Fogs")
  122.          filepath = "Graphics\\Fogs\\"
  123.        end
  124.       
  125.        f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "/#{filepath}" + "\n")
  126.        f.close
  127.      end
  128.      ini(32,32)
  129.    end
  130. end
  131. end
  132. $need_file_audio = []
  133. if FileTest.exist?("log_audio.txt")
  134. f = File.open("./log_audio.txt","r")
  135. $need_file_audio = f.read.split(/\n/)
  136. f.close
  137. end
  138. module Audio
  139. @me_play = method("me_play")
  140. def self.me_play(*arg)
  141.    begin
  142.      @me_play.call(*arg)
  143.    rescue Errno::ENOENT
  144.      filename=[*arg][0]
  145.      unless $need_file_audio.include?(filename)
  146.        $need_file_audio.push(filename)
  147.        f = File.open("./log_audio.txt","a")
  148.        f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "\\Audio\\ME" + "\n")
  149.        f.close
  150.      end
  151.      me_stop
  152.    end
  153. end
  154. @bgm_play = method("bgm_play")
  155. def self.bgm_play(*arg)
  156.    begin
  157.      @bgm_play.call(*arg)
  158.    rescue Errno::ENOENT
  159.      filename=[*arg][0]
  160.      unless $need_file_audio.include?(filename)
  161.        $need_file_audio.push(filename)
  162.        f = File.open("./log_audio.txt","a")
  163.        f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "\\Audio\\BGM" + "\n")
  164.        f.close
  165.      end
  166.      bgm_stop
  167.    end
  168. end
  169. @se_play = method("se_play")
  170. def self.se_play(*arg)
  171.    begin
  172.      @se_play.call(*arg)
  173.    rescue Errno::ENOENT
  174.      filename=[*arg][0]
  175.      unless $need_file_audio.include?(filename)
  176.        $need_file_audio.push(filename)
  177.        f = File.open("./log_audio.txt","a")
  178.        f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "\\Audio\\SE" + "\n")
  179.        f.close
  180.      end
  181.      se_stop
  182.    end
  183. end
  184. @bgs_play = method("bgs_play")
  185. def self.bgs_play(*arg)
  186.    begin
  187.      @bgs_play.call(*arg)
  188.    rescue Errno::ENOENT
  189.      filename=[*arg][0]
  190.      unless $need_file_audio.include?(filename)
  191.        $need_file_audio.push(filename)
  192.        f = File.open("./log_audio.txt","a")
  193.        f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "\\Audio\\BGS" + "\n")
  194.        f.close
  195.      end
  196.      bgs_stop
  197.    end
  198. end
  199. end
复制代码
但果然还是应该手动操作最好,考虑到的素材在制作游戏前就应该打包好了。

点评

非常好用,问题解决了  发表于 2012-2-21 10:33
谢谢  发表于 2012-2-21 10:33
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
18 小时
注册时间
2010-7-3
帖子
4
4
发表于 2012-2-21 14:16:50 手机端发表。 | 只看该作者
制作游戏一定要有耐心,楼主请别怕这点困难,因为这样才能保持游戏的完整性.楼主加油!
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-24 12:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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