Project1

标题: 请问怎么设置收集系统? [打印本页]

作者: youkarin    时间: 2014-7-22 12:52
标题: 请问怎么设置收集系统?
嗯,正在制作一款恐怖解谜类的游戏,游戏要求主角去收集不同的日记页码
所以就想整一个收集系统,如果找到日记的页码就能打开看内容,没有找到就显示???


嗯,就像狂父游戏里这个一样
{:2_248:}
作者: 越前リョーマ    时间: 2014-7-22 13:29
如果是现成的话,我记得线索仓库、任务系统可以达到类似效果,或者也可以使用事件来制作
作者: cfjgityhohtg    时间: 2014-7-22 13:42
狂父是wolf制作的,和xp的系统没有可比性。
作者: youkarin    时间: 2014-7-22 13:45
cfjgityhohtg 发表于 2014-7-22 13:42
狂父是wolf制作的,和xp的系统没有可比性。

因为我只记得狂父有我想要的样式,并没有说什么什么制作
作者: 天使喝可乐    时间: 2014-7-22 14:11
任务系统就可以吧 直接把任务变成各种图片 接到任务就可以看了
作者: kuerlulu    时间: 2014-7-22 14:57
本帖最后由 RyanBern 于 2014-7-22 15:01 编辑


RUBY 代码复制
  1. #==============================================================================
  2. # ■ Scene_Collect
  3. #------------------------------------------------------------------------------
  4. #  处理收集(CG)画面的类。
  5. #------------------------------------------------------------------------------
  6. #   请先在{COLLECT}处设置可被收集的图像名, 注意格式。
  7. #   不是bug: 实际运行时菜单顺序是打乱的, 但是对应关系没错。
  8. #   游戏中[收集到"一张图"]用事件脚本: 收集("一张图") 【括号可省略-> 收集 "一张图"
  9. #   召唤此界面方法(脚本): $scene = Scene_Collect.new($scene) ;用在事件还是脚本中都一样
  10. #   必要说明: 占用了一个变量1, 游戏中请不要对1号变量做任何操作。
  11. #             如果想更改被占用的变量请手动修改脚本。
  12. #==============================================================================
  13.  
  14. class Scene_Collect
  15.   COLLECT = {
  16.     "第一张图" => "Graphics/Pictures/0.jpg",# 仅供示范, 右边是图像路径
  17.     "第二张图" => "Graphics/Pictures/1.jpg" # 不要逗号
  18.   }
  19.   def initialize(scene)
  20.     @scene= scene
  21.     @last = 233333
  22.     @command = COLLECT.keys.map{|key|$game_variables[1].include?(key) ? key : "???"}
  23.   end
  24.   def main
  25.     @sprite = Sprite.new
  26.     @command_window = Window_Command.new 160, @command
  27.     @command_window.opacity = 160
  28.     Graphics.transition
  29.     loop do
  30.       Graphics.update
  31.       Input.update
  32.       update
  33.       break unless $scene == self
  34.     end
  35.     Graphics.freeze
  36.     @command_window.dispose
  37.     @sprite.bitmap.dispose
  38.     @sprite.dispose
  39.   end
  40.   def update
  41.     @command_window.update
  42.     if @last != @command_window.index
  43.       if @command[@command_window.index] == "???"
  44.         @sprite.bitmap = Bitmap.new 640, 480
  45.         @sprite.bitmap.fill_rect(@sprite.bitmap.rect, Color.new(100,100,100))
  46.         @sprite.bitmap.draw_text(300, 0, 320, 480, "未取得")
  47.       else
  48.         @sprite.bitmap = Bitmap.new COLLECT[@command[@command_window.index]]
  49.       end
  50.       @last = @command_window.index
  51.     end
  52.     if Input.trigger?(Input::B)
  53.       $game_system.se_play($data_system.cancel_se)
  54.       $scene = @scene
  55.     end
  56.   end
  57. end
  58. class Interpreter
  59.   def 收集(key)
  60.     $game_variables[1].push(key)
  61.   end
  62. end
  63. class Game_Variables
  64.   def initialize
  65.     @data = []
  66.     @data[1] = []
  67.   end
  68. end
  
作者: youkarin    时间: 2014-7-22 15:24
kuerlulu 发表于 2014-7-22 14:57
#==============================================================================
# ■ Scene_Collect
...

{:2_275:}多谢了,试了试还不错




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1