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

Project1

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

[已经解决] 关于生成游戏时的简便方法

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
61 小时
注册时间
2012-1-23
帖子
80
跳转到指定楼层
1
发表于 2012-2-25 22:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前做游戏的时候为了简便,每次都为了方便而把原安装目录下的所有素材(20M)直接复制到工程所在的文件夹,这样每次的文件都很大(实际上一个2M的游戏被放大成了20M)。
请问一下高手们,有没有什么办法能够自动地把要的素材添加到工程的Audio、Graphics文件夹,而其他的都不添加?
是不是只能在边做游戏的时候边导入所需的材料或是全部做好后把所有素材复制粘贴再把不用的删除?
PS:搜索过了一些帖子,好像没找的关于简便方法的。。。(可能是搜索的方法不对。。。)

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
2
发表于 2012-2-25 22:16:59 | 只看该作者
实在不行就按照LZ你说的这样吧
如果嫌麻烦可以试试用以下脚本,作用是把游戏中有用到的文件「的名字」提取出来,应该没什么用……
  1. $animations = []
  2. $autotiles = []
  3. $battlebacks = []
  4. $battlers = []
  5. $characters = []
  6. $fogs = []
  7. $gameovers = []
  8. $icons = []
  9. $panoramas = []
  10. $pictures = []
  11. $tilesets = []
  12. $titles = []
  13. $transitions = []
  14. $windowskins = []
  15. $bgm = []
  16. $bgs = []
  17. $me = []
  18. $se = []
  19. $s_t = Time.new
  20. $u_t = $s_t
  21. $xs = Sprite.new
  22. $xs.bitmap = Bitmap.new(640,480)
  23. def p_bmp(kind,name)
  24.   if name.is_a?(RPG::AudioFile)
  25.     name = name.name
  26.   end
  27.   return if name == ""
  28.   kind.push(name) unless kind.include?(name)
  29.   if Time.new-$u_t>=1
  30.     Graphics.update
  31.     $u_t = Time.new
  32.   end
  33. end
  34. $xs.bitmap.clear
  35. $xs.bitmap.draw_text(0,0,640,480,"提取数据库",2)
  36. if FileTest.exist?("Data/Actors.rxdata")
  37.   data = load_data("Data/Actors.rxdata")
  38.   for i in data
  39.     next if i.nil?
  40.     p_bmp($characters,i.character_name)
  41.     p_bmp($battlers,i.battler_name)
  42.   end
  43. end
  44. if FileTest.exist?("Data/Animations.rxdata")
  45.   data = load_data("Data/Animations.rxdata")
  46.   for i in data
  47.     next if i.nil?
  48.     p_bmp($animations,i.animation_name)
  49.     for j in i.timings
  50.       p_bmp($se,j.se)
  51.     end
  52.   end
  53. end
  54. for sz in ["Data/Armors.rxdata","Data/Armors.rxdata","Data/Items.rxdata","Data/Skills.rxdata"]
  55.   if FileTest.exist?(sz)
  56.     data = load_data(sz)
  57.     for i in data
  58.       next if i.nil?
  59.       p_bmp($icons,i.icon_name)
  60.     end
  61.   end
  62. end
  63. if FileTest.exist?("Data/Enemies.rxdata")
  64.   data = load_data("Data/Enemies.rxdata")
  65.   for i in data
  66.     next if i.nil?
  67.     p_bmp($battlers,i.battler_name)
  68.   end
  69. end
  70. if FileTest.exist?("Data/System.rxdata")
  71.   i = load_data("Data/System.rxdata")
  72.   p_bmp($windowskins,i.windowskin_name)
  73.   p_bmp($titles,i.title_name)
  74.   p_bmp($gameovers,i.gameover_name)
  75.   p_bmp($transitions,i.battle_transition)
  76.   p_bmp($bgm,i.title_bgm)
  77.   p_bmp($bgm,i.battle_bgm)
  78.   p_bmp($me,i.battle_end_me)
  79.   p_bmp($me,i.gameover_me)
  80.   p_bmp($se,i.cursor_se)
  81.   p_bmp($se,i.decision_se)
  82.   p_bmp($se,i.cancel_se)
  83.   p_bmp($se,i.buzzer_se)
  84.   p_bmp($se,i.equip_se)
  85.   p_bmp($se,i.shop_se)
  86.   p_bmp($se,i.save_se)
  87.   p_bmp($se,i.load_se)
  88.   p_bmp($se,i.battle_start_se)
  89.   p_bmp($se,i.escape_se)
  90.   p_bmp($se,i.actor_collapse_se)
  91.   p_bmp($se,i.enemy_collapse_se)
  92. end

  93. $xs.bitmap.clear
  94. $xs.bitmap.draw_text(0,0,640,480,"提取地图",1)
  95. if FileTest.exist?("Data/Tilesets.rxdata")
  96.   @t = load_data("Data/Tilesets.rxdata")
  97. end
  98. for i in 1...999
  99.   name = sprintf("Data/Map%03d.rxdata",i)
  100.   if FileTest.exist?(name)
  101.     $xs.bitmap.clear
  102.     $xs.bitmap.draw_text(0,0,640,480,"提取地图-"+i.to_s,1)
  103.     data = load_data(name)
  104.     p_bmp($bgm,data.bgm)
  105.     p_bmp($bgs,data.bgs)
  106.     t_id = data.tileset_id
  107.     t = @t[t_id]
  108.     p_bmp($tilesets,t.tileset_name)
  109.     p_bmp($panoramas,t.panorama_name)
  110.     p_bmp($fogs,t.fog_name)
  111.     p_bmp($battlebacks,t.battleback_name)
  112.     for j in t.autotile_names
  113.       p_bmp($autotiles,j)
  114.     end
  115.     for j in data.events.keys
  116.       $xs.bitmap.clear
  117.       $xs.bitmap.draw_text(0,0,640,480,"提取地图-"+i.to_s+"-"+j.to_s,1)
  118.       event_id = j
  119.       event = data.events[j]
  120.       for page in event.pages
  121.         p_bmp($characters,page.graphic.character_name)
  122.         for com in page.list
  123.           case com.code
  124.           when 131 #更改窗口
  125.             p_bmp($windowskins,com.parameters[0])
  126.           when 132 #更改战斗BGM
  127.             p_bmp($bgm,com.parameters[0])
  128.           when 133 #更改战斗结束ME
  129.             p_bmp($me,com.parameters[0])
  130.           when 222 #渐变
  131.             p_bmp($transitions,com.parameters[0])
  132.           when 231 #显示图片
  133.             p_bmp($pictures,com.parameters[1])
  134.           when 241 #演奏BGM
  135.             p_bmp($bgm,com.parameters[0])
  136.           when 245 #演奏BGS
  137.             p_bmp($bgs,com.parameters[0])
  138.           when 249 #演奏ME
  139.             p_bmp($me,com.parameters[0])
  140.           when 250 #演奏SE
  141.             p_bmp($se,com.parameters[0])
  142.           when 322 #更改行走图
  143.             p_bmp($characters,com.parameters[1])
  144.           when 204 #更改地图设置
  145.             case com.parameters[0]
  146.             when 0
  147.               p_bmp($panoramas,com.parameters[1])
  148.             when 1
  149.               p_bmp($fogs,com.parameters[1])
  150.             when 2
  151.               p_bmp($battlebacks,com.parameters[1])
  152.             end
  153.           when 209 #设置移动路线
  154.             for xd in com.parameters[1].list
  155.               if xd.code == 41
  156.                 p_bmp($characters,xd.parameters[0])
  157.               elsif xd.code == 44
  158.                 p_bmp($se,xd.parameters[0])
  159.               end
  160.             end
  161.           end
  162.         end
  163.       end
  164.     end
  165.   end
  166. end
  167. if FileTest.exist?("Data/Troops.rxdata")
  168.   data = load_data("Data/Troops.rxdata")
  169.   $xs.bitmap.clear
  170.   $xs.bitmap.draw_text(0,0,640,480,"提取队伍",1)
  171.   for i in data
  172.     $xs.bitmap.clear
  173.     $xs.bitmap.draw_text(0,0,640,480,"提取队伍-"+i.to_s,1)
  174.     next if i.nil?
  175.     event = i.pages
  176.     for j in event
  177.       for com in j.list
  178.         case com.code
  179.         when 131 #更改窗口
  180.           p_bmp($windowskins,com.parameters[0])
  181.         when 132 #更改战斗BGM
  182.           p_bmp($bgm,com.parameters[0])
  183.         when 133 #更改战斗结束ME
  184.           p_bmp($me,com.parameters[0])
  185.         when 222 #渐变
  186.           p_bmp($transitions,com.parameters[0])
  187.         when 231 #显示图片
  188.           p_bmp($pictures,com.parameters[1])
  189.         when 241 #演奏BGM
  190.           p_bmp($bgm,com.parameters[0])
  191.         when 245 #演奏BGS
  192.           p_bmp($bgs,com.parameters[0])
  193.         when 249 #演奏ME
  194.           p_bmp($me,com.parameters[0])
  195.         when 250 #演奏SE
  196.           p_bmp($se,com.parameters[0])
  197.         when 322 #更改行走图
  198.           p_bmp($characters,com.parameters[1])
  199.         when 204 #更改地图设置
  200.           case com.parameters[0]
  201.           when 0
  202.             p_bmp($panoramas,com.parameters[1])
  203.           when 1
  204.             p_bmp($fogs,com.parameters[1])
  205.           when 2
  206.             p_bmp($battlebacks,com.parameters[1])
  207.           end
  208.         when 209 #设置移动路线
  209.           for xd in com.parameters[1].list
  210.             if xd.code == 41
  211.               p_bmp($characters,xd.parameters[0])
  212.             elsif xd.code == 44
  213.               p_bmp($se,xd.parameters[0])
  214.             end
  215.           end
  216.         end
  217.       end
  218.     end
  219.   end
  220. end
  221. if FileTest.exist?("Data/CommonEvents.rxdata")
  222.   data = load_data("Data/CommonEvents.rxdata")
  223.   $xs.bitmap.clear
  224.   $xs.bitmap.draw_text(0,0,640,480,"提取公共事件",1)
  225.   for c_event in data
  226.     next if c_event.nil?
  227.     for com in c_event.list
  228.       case com.code
  229.       when 131 #更改窗口
  230.         p_bmp($windowskins,com.parameters[0])
  231.       when 132 #更改战斗BGM
  232.         p_bmp($bgm,com.parameters[0])
  233.       when 133 #更改战斗结束ME
  234.         p_bmp($me,com.parameters[0])
  235.       when 222 #渐变
  236.         p_bmp($transitions,com.parameters[0])
  237.       when 231 #显示图片
  238.         p_bmp($pictures,com.parameters[1])
  239.       when 241 #演奏BGM
  240.         p_bmp($bgm,com.parameters[0])
  241.       when 245 #演奏BGS
  242.         p_bmp($bgs,com.parameters[0])
  243.       when 249 #演奏ME
  244.         p_bmp($me,com.parameters[0])
  245.       when 250 #演奏SE
  246.         p_bmp($se,com.parameters[0])
  247.       when 322 #更改行走图
  248.         p_bmp($characters,com.parameters[1])
  249.       when 204 #更改地图设置
  250.         case com.parameters[0]
  251.         when 0
  252.           p_bmp($panoramas,com.parameters[1])
  253.         when 1
  254.           p_bmp($fogs,com.parameters[1])
  255.         when 2
  256.           p_bmp($battlebacks,com.parameters[1])
  257.         end
  258.       when 209 #设置移动路线
  259.         for xd in com.parameters[1].list
  260.           if xd.code == 41
  261.             p_bmp($characters,xd.parameters[0])
  262.           elsif xd.code == 44
  263.             p_bmp($se,xd.parameters[0])
  264.           end
  265.         end
  266.       end
  267.     end
  268.   end
  269. end
  270. #p $characters,$se
  271. #p Time.new - $s_t;exit
  272. text = "动画素材:\n"
  273. for i in $animations
  274.   text += i
  275.   text += "\n"
  276. end
  277. text += "\n自动元件:\n"
  278. for i in $autotiles
  279.   text += i
  280.   text += "\n"
  281. end
  282. text += "\n战斗背景:\n"
  283. for i in $battlebacks
  284.   text += i
  285.   text += "\n"
  286. end
  287. text += "\n战斗图:\n"
  288. for i in $battlers
  289.   text += i
  290.   text += "\n"
  291. end
  292. text += "\n行走图:\n"
  293. for i in $characters
  294.   text += i
  295.   text += "\n"
  296. end
  297. text += "\n雾图形:\n"
  298. for i in $fogs
  299.   text += i
  300.   text += "\n"
  301. end
  302. text += "\n游戏结束:\n"
  303. for i in $gameovers
  304.   text += i
  305.   text += "\n"
  306. end
  307. text += "\n图标:\n"
  308. for i in $icons
  309.   text += i
  310.   text += "\n"
  311. end
  312. text += "\n地图背景:\n"
  313. for i in $panoramas
  314.   text += i
  315.   text += "\n"
  316. end
  317. text += "\n图片:\n"
  318. for i in $pictures
  319.   text += i
  320.   text += "\n"
  321. end
  322. text += "\n地图图块:\n"
  323. for i in $tilesets
  324.   text += i
  325.   text += "\n"
  326. end
  327. text += "\n标题:\n"
  328. for i in $titles
  329.   text += i
  330.   text += "\n"
  331. end
  332. text += "\n渐变图形:\n"
  333. for i in $transitions
  334.   text += i
  335.   text += "\n"
  336. end
  337. text += "\n窗口图形:\n"
  338. for i in $windowskins
  339.   text += i
  340.   text += "\n"
  341. end
  342. text += "\nBGM:\n"
  343. for i in $bgm
  344.   text += i
  345.   text += "\n"
  346. end
  347. text += "\nBGS:\n"
  348. for i in $bgs
  349.   text += i
  350.   text += "\n"
  351. end
  352. text += "\nME:\n"
  353. for i in $me
  354.   text += i
  355.   text += "\n"
  356. end
  357. text += "\nSE:\n"
  358. for i in $se
  359.   text += i
  360.   text += "\n"
  361. end
  362. t = Time.new - $s_t
  363. l_text = "本次输出用时" + t.to_s + "秒,欢迎使用。"
  364. text += l_text
  365. f = open("text.txt","w")
  366. f.write(text)
  367. f.close
  368. print "本次输出用时"+t.to_s+"秒,欢迎使用。";exit
复制代码

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
61 小时
注册时间
2012-1-23
帖子
80
3
 楼主| 发表于 2012-2-25 22:30:42 | 只看该作者
好长(不过好像不算太长。。。)
我还是新手中的新手。。。
脚本什么的还不懂哇。。。(我等会儿去试试。。。)
一般做的时候是不是还是要按部就班的做一点导入一点?

点评

素材少的话可以在做完后再加,素材多的话还是用一个加一个好点(其实我也是直接整个素材包丢进游戏的)  发表于 2012-2-25 22:43
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-1 11:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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