Project1
标题:
XP 版 调试输出框 + 变量开关输出窗口 不使用 RM 原版窗口
[打印本页]
作者:
kula1900
时间:
2009-12-31 14:17
标题:
XP 版 调试输出框 + 变量开关输出窗口 不使用 RM 原版窗口
Debug Lib.jpg
(259.97 KB, 下载次数: 15)
下载附件
保存到相册
2009-12-31 14:17 上传
代码如下
#==============================================================================
# ■ Out_Put
#------------------------------------------------------------------------------
# 处理调试文本输出的类
#==============================================================================
class Out_Put
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
@text = Win32API.new("lib/OutPut/OutPut.dll","OutDebugText","p",nil)
@window = Win32API.new("lib/OutPut/OutPut.dll","OpenOutPutWindow",nil,nil)
@window.Call
end
#--------------------------------------------------------------------------
# ● 输出调试文本
#--------------------------------------------------------------------------
def debug_text(text)
@text.Call(text)
end
end
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
# 处理标题画面的类。
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# ● 命令 : 新游戏
#--------------------------------------------------------------------------
alias command_new_game2 command_new_game
def command_new_game
command_new_game2
lib = Lib.new
lib.vinitialize
lib.sinitialize
end
end
#==============================================================================
# ■ Scene_Load
#------------------------------------------------------------------------------
# 处理读档画面的类。
#==============================================================================
class Scene_Load < Scene_File
#--------------------------------------------------------------------------
# ● 读取存档数据
# file : 读取用文件对像 (已经打开)
#--------------------------------------------------------------------------
alias read_save read_save_data
def read_save_data(file)
read_save(file)
lib = Lib.new
lib.sinitialize
lib.vinitialize
end
end
#==============================================================================
# ■ Game_Variables
#------------------------------------------------------------------------------
# 处理变量的类。编入的是类 Array 的外壳。本类的实例请参考
# $game_variables。
#==============================================================================
class Game_Variables
#--------------------------------------------------------------------------
# ● 设置变量
# variable_id : 变量 ID
# value : 变量的值
# 为何要重新定义因为 变量发生改变 要回调给 DLL
#--------------------------------------------------------------------------
def []=(variable_id, value)
if variable_id <= 5000
@data[variable_id] = value
vlib = Lib.new
vlib.vinitialize
end
end
end
#==============================================================================
# ■ Game_Switches
#------------------------------------------------------------------------------
# 处理开关的类。编入的是类 Array 的外壳。本类的实例请参考
# $game_switches。
#==============================================================================
class Game_Switches
#--------------------------------------------------------------------------
# ● 设置开关
# switch_id : 开关 ID
# value : ON (true) / OFF (false)
#--------------------------------------------------------------------------
def []=(switch_id, value)
if switch_id <= 5000
@data[switch_id] = value
slib = Lib.new
slib.sinitialize
end
end
end
#==============================================================================
# ■ Lib
#------------------------------------------------------------------------------
# 处理变量开关扩展接口的类
#==============================================================================
class Lib
#-----------------------------------------------------------------------------
# □ 初始化变量调试窗口
#-----------------------------------------------------------------------------
def vinitialize
@variableslib = Win32API.new("lib/Lib.dll","Variable","ipp",nil)
@variablesempty = Win32API.new("lib/Lib.dll","EmptyVariable",nil,nil)
@variablesempty.Call
for i in 1..$data_system.variables.size
@variableslib.Call(i,$data_system.variables[i],$game_variables[i].to_s)
end
end
#-----------------------------------------------------------------------------
# □ 载入变量调试窗口
#-----------------------------------------------------------------------------
def loadv
@variablelibw = Win32API.new("lib/Lib.dll","OpenVariable",nil,nil)
@variablelibw.Call
end
#-----------------------------------------------------------------------------
# □ 初始化开关调试窗口
#-----------------------------------------------------------------------------
def sinitialize
@switchlib = Win32API.new("lib/Lib.dll","Switch","ipp",nil)
@switchempty = Win32API.new("lib/Lib.dll","EmptySwitch",nil,nil)
@switchempty.Call
for i in 1..$data_system.switches.size
status = $game_switches[i] ? "ON" : "OFF"
@switchlib.Call(i,$data_system.switches[i],status)
end
end
#-----------------------------------------------------------------------------
# □ 载入开关调试窗口
#-----------------------------------------------------------------------------
def loads
@switchlibw = Win32API.new("lib/Lib.dll","OpenSwitch",nil,nil)
@switchlibw.Call
end
end
#==============================================================================
# ■ Top
#------------------------------------------------------------------------------
# 置顶
#==============================================================================
class Top
def home
# 没有任何说明,参见教程吧……
top = Win32API.new('user32', 'SetWindowPos', 'lllllll', 'l')
seek = Win32API.new("lib/OutPut/OutPut.dll","Get_Handle",nil,"l")
hwnd = seek.Call
top.call(hwnd, -1, 0, 0, 0, 0, 0x2 + 0x1 + 0x40)
end
end
#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
# 各定义结束后、从这里开始实际处理。 为何要修改 因为 在结束后 会有异常
#==============================================================================
def exit(n = 0)
@close_variable_window = Win32API.new("lib/Lib.dll", "CloseVariable", nil, nil)
@close_variable_window.Call
@exit = Win32API.new("lib/OutPut/OutPut.dll","End_Process","p",nil)
@exit.Call("Game.exe")
end
def p(text)
$out.debug_text(text)
end
begin
$out = Out_Put.new
lib = Lib.new
lib.loadv
lib.loads
top = Top.new
top.home
# 准备过渡
# 设置系统默认字体
Font.default_name = (["黑体"])
Graphics.freeze
# 生成场景对像 (标题画面)
$scene = Scene_Title.new
# $scene 为有效的情况下调用 main 过程
loop do
if $scene != nil
$scene.main
else
exit
end
end
# 淡入淡出
Graphics.transition(20)
rescue Errno::ENOENT
# 补充 Errno::ENOENT 以外错误
# 无法打开文件的情况下、显示信息后结束
filename = $!.message.sub("No such file or directory - ", "")
print("找不到文件 #{filename}。 ")
end
复制代码
范例如下
因为不会直接贴图 所以 泪奔
VX 版的 明天发布
作者:
风中承诺
时间:
2009-12-31 19:27
来看看是什么
作者:
DeathKing
时间:
2009-12-31 19:44
难道还可以执行调试语句?
不过……有明天么?
作者:
yy461530593
时间:
2010-6-18 20:10
很不错呀,是不是就是弹出个窗口这样来输入?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1