本帖最后由 RyanBern 于 2014-7-22 15:01 编辑
#============================================================================== # ■ 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
#==============================================================================
# ■ 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
|