Project1
标题:
关于选择窗口刷新的脚本问题
[打印本页]
作者:
黄亦天
时间:
2011-1-3 10:37
标题:
关于选择窗口刷新的脚本问题
本帖最后由 黄亦天 于 2011-1-4 16:21 编辑
我根据夕阳大大的教程,在ESC菜单里添加了一个“系统设置”选项,
然后我仿造原理复制了一个Scene_End进行改写,改成了我所需的Scene_Shezhi(好吧我英语无力)
目前功能上毫无问题,但是选择之后必须再返回一下再进入才能刷新选项内容,怎么做才能让其按下确认键之后就进行刷新?
以下是我改的脚本:
#==============================================================================
# ** Scene_Shezhi
#------------------------------------------------------------------------------
# 这个类用来执行设置界面的程式。
#==============================================================================
class Scene_Shezhi < Scene_Base
#--------------------------------------------------------------------------
# * 程式开始
#--------------------------------------------------------------------------
def start
super
create_menu_background
create_command_window
end
#--------------------------------------------------------------------------
# * 程式开始后的处理
#--------------------------------------------------------------------------
def post_start
super
open_command_window
end
#--------------------------------------------------------------------------
# * 程式终止前的处理
#--------------------------------------------------------------------------
def pre_terminate
super
close_command_window
end
#--------------------------------------------------------------------------
# * 程式终止
#--------------------------------------------------------------------------
def terminate
super
dispose_command_window
dispose_menu_background
end
#--------------------------------------------------------------------------
# * 返回之前的画面
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Menu.new(6)
end
#--------------------------------------------------------------------------
# * 更新帧
#--------------------------------------------------------------------------
def update
super
update_menu_background
@command_window.update
if Input.trigger?(Input::B)
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::C)
case @command_window.index
when 0 # 金钱得失提示
command_Gtishi
when 1 # 物品得失提示
command_Wtishi
when 2 # 队伍系统开关
command_Psystem
end
end
end
#--------------------------------------------------------------------------
# * 针对选单界面更改屏幕背景
#--------------------------------------------------------------------------
def update_menu_background
super
@menuback_sprite.tone.set(0, 0, 0, 128)
end
#--------------------------------------------------------------------------
# * 创建命令窗口
#--------------------------------------------------------------------------
def create_command_window
if $game_switches[5] == false
s1 = "关闭得失金钱提示"
else
s1 = "开启得失金钱提示"
end
if $game_switches[6] == false
s2 = "关闭得失物品提示"
else
s2 = "开启得失物品提示"
end
if $game_switches[1] == true
s3 = "关闭队伍系统"
else
s3 = "开启队伍系统"
end
@command_window = Window_Command.new(200, [s1, s2, s3])
@command_window.x = 25
@command_window.y = 25
@command_window.openness = 0
end
#--------------------------------------------------------------------------
# * 清除命令窗口
#--------------------------------------------------------------------------
def dispose_command_window
@command_window.dispose
end
#--------------------------------------------------------------------------
# * 展开命令窗口
#--------------------------------------------------------------------------
def open_command_window
@command_window.open
begin
@command_window.update
Graphics.update
end until @command_window.openness == 255
end
#--------------------------------------------------------------------------
# * 合拢命令窗口
#--------------------------------------------------------------------------
def close_command_window
@command_window.close
begin
@command_window.update
Graphics.update
end until @command_window.openness == 0
end
end
#--------------------------------------------------------------------------
# * 当执行[金钱得失提示]时的处理
#--------------------------------------------------------------------------
def command_Gtishi
Sound.play_decision
if $game_switches[5] == false
s1 = "关闭得失金钱提示"
$game_switches[5] = true
else
s1 = "开启得失金钱提示"
$game_switches[5] = false
end
end
#--------------------------------------------------------------------------
# * 当执行[物品得失提示]时的处理
#--------------------------------------------------------------------------
def command_Wtishi
Sound.play_decision
if $game_switches[6] == false
s2 = "关闭得失物品提示"
$game_switches[6] = true
$game_switches[7] = true
$game_switches[8] = true
else
s2 = "开启得失物品提示"
$game_switches[6] = false
$game_switches[7] = false
$game_switches[8] = false
end
end
#--------------------------------------------------------------------------
# * 当执行[队伍系统开关]时的处理
#--------------------------------------------------------------------------
def command_Psystem
Sound.play_decision
if $game_switches[1] == true
s1 = "关闭队伍系统"
$game_switches[1] = false
else
s1 = "开启队伍系统"
$game_switches[1] = true
end
end
复制代码
作者:
fux2
时间:
2011-1-3 10:57
本帖最后由 fux2 于 2011-1-3 11:24 编辑
回复
黄亦天
的帖子
刚才会错意,s1,s2什么的是局部变量,修改了对窗口自然无影响,而创建窗口的时候是通过变量判断文字显示的,所以重新打开会改变。建议增加refresh方法或dispose重新创建窗口。
作者:
黄亦天
时间:
2011-1-4 14:10
自顶一下……
作者:
诡异の猫
时间:
2011-1-4 16:07
#==============================================================================
# ** Scene_Shezhi
#------------------------------------------------------------------------------
# 这个类用来执行设置界面的程式。
#==============================================================================
class Scene_Shezhi < Scene_Base
#--------------------------------------------------------------------------
# * 程式开始
#--------------------------------------------------------------------------
def start
super
create_menu_background
create_command_window
end
#--------------------------------------------------------------------------
# * 程式开始后的处理
#--------------------------------------------------------------------------
def post_start
super
open_command_window
end
#--------------------------------------------------------------------------
# * 程式终止前的处理
#--------------------------------------------------------------------------
def pre_terminate
super
close_command_window
end
#--------------------------------------------------------------------------
# * 程式终止
#--------------------------------------------------------------------------
def terminate
super
dispose_command_window
dispose_menu_background
end
#--------------------------------------------------------------------------
# * 返回之前的画面
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Menu.new(6)
end
#--------------------------------------------------------------------------
# * 更新帧
#--------------------------------------------------------------------------
def update
super
update_menu_background
@command_window.update
if Input.trigger?(Input::B)
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::C)
index = @command_window.index
case index
when 0 # 金钱得失提示
command_Gtishi
when 1 # 物品得失提示
command_Wtishi
when 2 # 队伍系统开关
command_Psystem
end
refresh
@command_window.index = index
end
end
#--------------------------------------------------------------------------
# * 针对选单界面更改屏幕背景
#--------------------------------------------------------------------------
def update_menu_background
super
@menuback_sprite.tone.set(0, 0, 0, 128)
end
#--------------------------------------------------------------------------
# * 创建命令窗口
#--------------------------------------------------------------------------
def create_command_window
if $game_switches[5] == false
s1 = "关闭得失金钱提示"
else
s1 = "开启得失金钱提示"
end
if $game_switches[6] == false
s2 = "关闭得失物品提示"
else
s2 = "开启得失物品提示"
end
if $game_switches[1] == true
s3 = "关闭队伍系统"
else
s3 = "开启队伍系统"
end
@command_window = Window_Command.new(200, [s1, s2, s3])
@command_window.x = 25
@command_window.y = 25
@command_window.openness = 0
end
#--------------------------------------------------------------------------
# * 刷新
#--------------------------------------------------------------------------
def refresh
@command_window.dispose
if $game_switches[5] == false
s1 = "关闭得失金钱提示"
else
s1 = "开启得失金钱提示"
end
if $game_switches[6] == false
s2 = "关闭得失物品提示"
else
s2 = "开启得失物品提示"
end
if $game_switches[1] == true
s3 = "关闭队伍系统"
else
s3 = "开启队伍系统"
end
@command_window = Window_Command.new(200, [s1, s2, s3])
@command_window.x = 25
@command_window.y = 25
end
#--------------------------------------------------------------------------
# * 清除命令窗口
#--------------------------------------------------------------------------
def dispose_command_window
@command_window.dispose
end
#--------------------------------------------------------------------------
# * 展开命令窗口
#--------------------------------------------------------------------------
def open_command_window
@command_window.open
begin
@command_window.update
Graphics.update
end until @command_window.openness == 255
end
#--------------------------------------------------------------------------
# * 合拢命令窗口
#--------------------------------------------------------------------------
def close_command_window
@command_window.close
begin
@command_window.update
Graphics.update
end until @command_window.openness == 0
end
#--------------------------------------------------------------------------
# * 当执行[金钱得失提示]时的处理
#--------------------------------------------------------------------------
def command_Gtishi
Sound.play_decision
if $game_switches[5] == false
$game_switches[5] = true
else
$game_switches[5] = false
end
end
#--------------------------------------------------------------------------
# * 当执行[物品得失提示]时的处理
#--------------------------------------------------------------------------
def command_Wtishi
Sound.play_decision
if $game_switches[6] == false
$game_switches[6] = true
$game_switches[7] = true
$game_switches[8] = true
else
$game_switches[6] = false
$game_switches[7] = false
$game_switches[8] = false
end
end
#--------------------------------------------------------------------------
# * 当执行[队伍系统开关]时的处理
#--------------------------------------------------------------------------
def command_Psystem
Sound.play_decision
if $game_switches[1] == true
$game_switches[1] = false
else
$game_switches[1] = true
end
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1