- 注册时间
- 2004-3-27
- 最后登录
- 2017-7-27
⑧专业
大象摇啊摇
- 积分
- 441584

|
发表于 2005-6-15 04:52:54
|
显示全部楼层
class Scene_Musicbox
def initialize(menu_index = 1)
@menu_index = menu_index
end
####### 主处理
def main
# 生成曲目选择窗口
#曲目名
@m=[\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]#歌曲名称
#曲目文件名
@mm=[\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]#歌曲地址
s=[]
#
i=14 * (@menu_index-1)
for j in 0..14
if @m==nil
break
end
s[j] = @m
i+=1
end
@command_window = Window_Command.new(640, s.compact)
@command_window.index = 0
# 执行过渡
Graphics.transition
# 主循环
loop do
# 刷新游戏画面
Graphics.update
# 刷新输入信息
Input.update
# 刷新画面
update
# 如果切换画面就中断循环
if $scene != self
break
end
end
# 准备过渡
Graphics.freeze
# 释放窗口
@command_window.dispose
end
###### 刷新窗口
def update
@command_window.update
# 命令窗口被激活的情况下: 调用 update_command
#if @command_window.active
update_command
#return
#end
end
###### 按键处理和响应
def update_command
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 切换回地图画面
$game_system.bgm_restore
$scene = Scene_Map.new
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 命令窗口的光标位置分支
i=14 * (@menu_index-1)
case @command_window.index
when 0
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 1
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 2
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 3
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 4
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 5
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 6
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 7
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 8
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 9
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 10
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 11
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 12
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 13
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
when 14
playbgm(\"Audio/BGM/\"+@mm[i+@command_window.index])
end
return
end
# 按下方向键右键后的翻页判定
if @menu_index <= (@m.size/14) and @m.size > 14
if Input.trigger?(Input::RIGHT)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Musicbox.new(@menu_index+1) # ←进入次页
return
end
end
# 按下方向键左键后的翻页判定
if @menu_index > 1
if Input.trigger?(Input: EFT)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Musicbox.new(@menu_index-1) # ←返回前页
return
end
end
end
#播放曲目,找不到文件的话就不播放。
def playbgm(f)
begin
unless f == nil
Audio.bgm_play(f, 100, 100)
end
rescue Errn:ENOENT
#print(\"找不到文件:#{f}\")
end
end
end
试试看
|
|