|
【教程】如何制作RMXP窗口 |
准尉 十一级 |
要制作一个窗口,首先要打开脚本编辑器,新建一页脚本
|
准尉 十一级 |
然后你要给你的窗口取一个名字,名字最好是英文的,我取的是: Window_PS 输入到右下角那个名称栏里 然后在编辑区里打上: #============================================================================== # ■ Window_PS #------------------------------------------------------------------------------ # 在这里写上脚本用途或什么窗口。 #==============================================================================
class Window_PS < Window_Base
|
准尉 十一级 |
这样就定义了一个新类。 在class的下面打上end,结束这个类,否则会脚本错误 注意class和end一定要在最同一条直线上,例如: class end 不能是 class end 然后你需要调整一些窗口参数 在class与end中间打上: #-------------------------------------------------------------------------- # ● 初始化窗口 #-------------------------------------------------------------------------- def initialize # 初始化数据库 @sez = []
super(0, 0, 160, 64)# 窗口位置(格式:左上角顶点x坐标,左上角顶点y坐标 # ,窗口长度,窗口宽度) self.contents = Bitmap.new(width - 32, height - 32)#这个不用管 refresh#标签跳转,标签名随便 end
上面的值可以任意改
|
准尉 十一级 |
然后你需要设置窗口的透明度。 在@sez=[]的下面打上: @sez[1]=244# 边框透明度 @sez[2]=144# 背景透明度 @sez[3]=255# 文字透明度
若要使窗口能开能关,必须设置关闭时的透明度。 关闭时窗口完全隐藏,所以边框背景文字都应该为0。 如果你要使关闭时的窗口微微可见,可以改一下,不要调的太大了 如: @sez[4]=0 @sez[5]=0 @sez[6]=0 这些都可以调整
|
准尉 十一级 |
窗口初始化完毕,现在需要刷新窗口中的文字,打上: #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def pds end 用于刷新窗口文字
|
准尉 十一级 |
最好弄一个开关来控制窗口是否隐藏 ,我设为开关64 def pds是标签名,你上面写什么就打什么。 上面写的是refresh#标签跳转,标签名随便,所以应该改成def refresh
|
准尉 十一级 |
def refresh # 应用窗口透明度 if $game_switches[64] self.back_opacity = @sez[1] self.contents_opacity = @sez[2] self.opacity = @eso3 = @sez[3] else self.back_opacity = @sez[4] self.contents_opacity = @sez[5] self.opacity = @eso3 = @sez[6] end self.contents.draw_text(4, 0 , width - 40, 32,"窗口中显示的文字",1) self.contents.draw_text(8, 0 , width - 40, 32,"第二行",1) self.contents.draw_text(12, 0 , width - 40, 32,"第三行",1) end
|
准尉 十一级 |
运行游戏,窗口竟没有出现,怎么办呢? 原来,我们没有设置显示窗口。 转到Scene_Map类,在 # 生成信息窗口 @message_window = Window_Message.new 的下面打上: @window1 = Window_PS.new
在 # 释放信息窗口 @message_window.dispose 的下面打上: @window1.dispose
在 # 刷新信息窗口 @message_window.update 的下面打上 @window1.refresh 注意后面那个refresh是标签名
再次运行游戏,成功 这只是一个简单的样例,更复杂的就要看各位作者了
|