赞 | 2 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 4954 |
最后登录 | 2024-3-18 |
在线时间 | 54 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 81
- 在线时间
- 54 小时
- 注册时间
- 2008-12-24
- 帖子
- 345
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
代码如下- #==============================================================================
- # ■ 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 版的 明天发布 |
|