#==============================================================================
# ■ Scene_Collect
#------------------------------------------------------------------------------
# 处理收集(CG)画面的类。
#------------------------------------------------------------------------------
# 请先在{COLLECT}处设置可被收集的图像名, 注意格式。
# 不是bug: 实际运行时菜单顺序是打乱的, 但是对应关系没错。
# 游戏中[收集到"一张图"]用事件脚本: 收集("一张图") 【括号可省略-> 收集 "一张图"
# 召唤此界面方法(脚本): $scene = Scene_Collect.new($scene) ;用在事件还是脚本中都一样
# 必要说明: 占用了一个变量1, 游戏中请不要对1号变量做任何操作。
# 如果想更改被占用的变量请手动修改脚本。
#==============================================================================
class Scene_Collect
COLLECT = {
"第一张图" => "Graphics/Pictures/0.jpg",# 仅供示范, 右边是图像路径
"第二张图" => "Graphics/Pictures/1.jpg" # 不要逗号
}
def initialize(scene)
@scene= scene
@last = 233333
@command = COLLECT.keys.map{|key|$game_variables[1].include?(key) ? key : "???"}
end
def main
@sprite = Sprite.new
@command_window = Window_Command.new 160, @command
@command_window.opacity = 160
Graphics.transition
loop do
Graphics.update
Input.update
update
break unless $scene == self
end
Graphics.freeze
@command_window.dispose
@sprite.bitmap.dispose
@sprite.dispose
end
def update
@command_window.update
if @last != @command_window.index
if @command[@command_window.index] == "???"
@sprite.bitmap = Bitmap.new 640, 480
@sprite.bitmap.fill_rect(@sprite.bitmap.rect, Color.new(100,100,100))
@sprite.bitmap.draw_text(300, 0, 320, 480, "未取得")
else
@sprite.bitmap = Bitmap.new COLLECT[@command[@command_window.index]]
end
@last = @command_window.index
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = @scene
end
end
end
class Interpreter
def 收集(key)
$game_variables[1].push(key)
end
end
class Game_Variables
def initialize
@data = []
@data[1] = []
end
end