Project1
标题:
游戏找不到图片或声音也不停止,能做到吗?
[打印本页]
作者:
惊天动地
时间:
2012-2-21 01:04
标题:
游戏找不到图片或声音也不停止,能做到吗?
我游戏图很多,声音也多,难免有个遗漏,但只要有遗漏,游戏过程中找不到图了 找不到声音啦,就会提示,就会停止, 为了简便,能否有这样的脚本?让游戏即使找不到该图或声音也能继续啊?
谢谢指教! dsu_plus_rewardpost_czw
作者:
rainfly
时间:
2012-2-21 08:50
有容错脚本可以解决这样的问题,但游戏制作过程中使用这样的脚本只会使你的游戏漏洞百出,一般建议游戏制作好后再放进去
作者:
hcm
时间:
2012-2-21 08:54
#==============================================================================
# ■ 容错脚本-> CMD辅助素材提取脚本
#------------------------------------------------------------------------------
# 容错脚本 BY 轮回者
# CMD辅助素材提取脚本 BY DeathKing
# 此脚本具有上述两个功能!
#==============================================================================
# 使用方法请参考萌芽游戏社中此工程相关的使用说明!
#
# - 获取工程路径
# 使用Windows浏览文件,直到可以直接看到Game.exe这个文件,然后直接复制
# 这个地址,粘贴到$GAME_PATH,并将\替换为\\。
#
# - 获取RTP路径
# 方法一:打开注册表(“开始”->“运行”->regedt32.exe),
# HKEY_LOCAL_MACHINE\SOFTWARE\Enterbrain\RGSS\RTP
# 这个名项的值给复制下来,粘贴到$RTP_PATH中,并把\变为\# 方法二:打开安装RMXP的文件夹,找到Standard文件夹的路径,把它复制到
# $RTP_PATH中,把\变为\#
# - 选择RTP
# 将RTP选为“无”
#
# - 经行游戏
# 点击“游戏测试”(快捷键F12)测试游戏,使每个素材都触发一次Error
# (因为没有素材,所以会提示“找不到****”这正是此脚本所需要的,触发的
# Eorry不会中断工程,而是通过容错脚本来得知需要的素材,再输出到文件中去
# 因此,想要完全提取素材,必须使每个素材都发生一次Error。)
#
# - 修改文件
# 此时你会发现,文件夹下多了两个文件,打开这两个文件,先使用记事本自带的
# “查找、替换”功能将 / 替换为 \ 避免出错。
# * Notepad
# 对于XP的记事本,请继续看:
# 在文档的最后一行独行书写一个 pause 方便等会儿查看素材是否已提取。
# 然后点击“文件”->“另存为” 这里文件名自定,但是将他写成这种格式:
# 文件名.bat 且将编码变为 ANSI 的。
# 现在关闭文件,并运行新创建的bat文件,如果看到了“已复制了*个文件”
# 就说明素材已经提取成功。
# * Notepad2
# 对于Vista的记事本2,请继续看:
# 在文档的最后一行独行书写一个 pause 方便待会儿查看素材是否已提取。
# 然后点击“文件”->“编码”->“ANSI”,并另存为“文件名自定.bat”
# 运行这个新建的批处理文件就可以了。
# 同样,如果看到了“已复制了*个文件”就说明素材已经提取成功了。
#==============================================================================
$GAME_PATH = "H:\\RMXP工程\\素材提取脚本"
# 工程路径
$RTP_PATH = "H:\\RMXP\\RGSS\\Standard"
# RTP路径
$need_file_bitmap = []
if FileTest.exist?("log_bitmap.txt")
f = File.open("./log_bitmap.txt","r")
$need_file_bitmap = f.read.split(/\n/)
f.close
end
module Graphics
@transition = method("transition")
def self.transition(*arg)
begin
@transition.call(*arg)
rescue Errno::ENOENT
ary=[*arg]
filename=ary[1]
unless $need_file_bitmap.include?(filename)
$need_file_bitmap.push(filename)
f = File.open("./log_bitmap.txt","a")
f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "\\Graphics\\Transitions" + "\n")
f.close
end
@transition.call(ary[0])
end
end
end
class Bitmap < Object
alias ini initialize
def initialize(*arg)
begin
ini(*arg)
rescue Errno::ENOENT
filename=[*arg][0]
unless $need_file_bitmap.include?(filename)
$need_file_bitmap.push(filename)
f = File.open("./log_bitmap.txt","a")
filepath = "Graphics\\"
if filename.include?("Titles")
filepath = "Graphics\\Titles\\"
end
if filename.include?("Windowskins")
filepath = "Graphics\\Windowskins\\"
end
if filename.include?("Autotiles")
filepath = "Graphics\\Autotiles\\"
end
if filename.include?("Characters")
filepath = "Graphics\\Characters\\"
end
if filename.include?("Pictures")
filepath = "Graphics\\Pictures\\"
end
if filename.include?("Animations")
filepath = "Graphics\\Animations\\"
end
if filename.include?("Battlebacks")
filepath = "Graphics\\Battlebacks\\"
end
if filename.include?("Battlers")
filepath = "Graphics\\Battlers\\"
end
if filename.include?("Tilesets")
filepath = "Graphics\\Tilesets\\"
end
if filename.include?("Panoramas")
filepath = "Graphics\\Panoramas\\"
end
if filename.include?("Icons")
filepath = "Graphics\\Icons\\"
end
if filename.include?("Gameovers")
filepath = "Graphics\\Gameovers\\"
end
if filename.include?("Fogs")
filepath = "Graphics\\Fogs\\"
end
f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "/#{filepath}" + "\n")
f.close
end
ini(32,32)
end
end
end
$need_file_audio = []
if FileTest.exist?("log_audio.txt")
f = File.open("./log_audio.txt","r")
$need_file_audio = f.read.split(/\n/)
f.close
end
module Audio
@me_play = method("me_play")
def self.me_play(*arg)
begin
@me_play.call(*arg)
rescue Errno::ENOENT
filename=[*arg][0]
unless $need_file_audio.include?(filename)
$need_file_audio.push(filename)
f = File.open("./log_audio.txt","a")
f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "\\Audio\\ME" + "\n")
f.close
end
me_stop
end
end
@bgm_play = method("bgm_play")
def self.bgm_play(*arg)
begin
@bgm_play.call(*arg)
rescue Errno::ENOENT
filename=[*arg][0]
unless $need_file_audio.include?(filename)
$need_file_audio.push(filename)
f = File.open("./log_audio.txt","a")
f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "\\Audio\\BGM" + "\n")
f.close
end
bgm_stop
end
end
@se_play = method("se_play")
def self.se_play(*arg)
begin
@se_play.call(*arg)
rescue Errno::ENOENT
filename=[*arg][0]
unless $need_file_audio.include?(filename)
$need_file_audio.push(filename)
f = File.open("./log_audio.txt","a")
f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "\\Audio\\SE" + "\n")
f.close
end
se_stop
end
end
@bgs_play = method("bgs_play")
def self.bgs_play(*arg)
begin
@bgs_play.call(*arg)
rescue Errno::ENOENT
filename=[*arg][0]
unless $need_file_audio.include?(filename)
$need_file_audio.push(filename)
f = File.open("./log_audio.txt","a")
f.write("copy " + $RTP_PATH.to_s + "\\" + filename + ".* " + $GAME_PATH.to_s + "\\Audio\\BGS" + "\n")
f.close
end
bgs_stop
end
end
end
复制代码
但果然还是应该手动操作最好,考虑到的素材在制作游戏前就应该打包好了。
作者:
jackchen
时间:
2012-2-21 14:16
制作游戏一定要有耐心,楼主请别怕这点困难,因为这样才能保持游戏的完整性.楼主加油!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1