目前共有8篇帖子。
【教程】如何制作RMXP窗口
1樓 魔法绿骑士 2011-6-17 23:25
要制作一个窗口,首先要打开脚本编辑器,新建一页脚本
2樓 魔法绿骑士 2011-6-17 23:26
然后你要给你的窗口取一个名字,名字最好是英文的,我取的是:
Window_PS
输入到右下角那个名称栏里
然后在编辑区里打上:
#==============================================================================
# ■ Window_PS
#------------------------------------------------------------------------------
#  在这里写上脚本用途或什么窗口。
#==============================================================================

class Window_PS < Window_Base
3樓 魔法绿骑士 2011-6-17 23:26
这样就定义了一个新类。
在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

上面的值可以任意改
4樓 魔法绿骑士 2011-6-17 23:26
然后你需要设置窗口的透明度。
在@sez=[]的下面打上:
@sez[1]=244# 边框透明度
@sez[2]=144# 背景透明度
@sez[3]=255# 文字透明度

若要使窗口能开能关,必须设置关闭时的透明度。
关闭时窗口完全隐藏,所以边框背景文字都应该为0。
如果你要使关闭时的窗口微微可见,可以改一下,不要调的太大了
如:
@sez[4]=0
@sez[5]=0
@sez[6]=0
这些都可以调整
5樓 魔法绿骑士 2011-6-17 23:26
窗口初始化完毕,现在需要刷新窗口中的文字,打上:
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def pds
end
用于刷新窗口文字
6樓 魔法绿骑士 2011-6-17 23:26
最好弄一个开关来控制窗口是否隐藏 ,我设为开关64
def pds是标签名,你上面写什么就打什么。
上面写的是refresh#标签跳转,标签名随便,所以应该改成def refresh
7樓 魔法绿骑士 2011-6-17 23:26
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
8樓 魔法绿骑士 2011-6-17 23:27
运行游戏,窗口竟没有出现,怎么办呢?
原来,我们没有设置显示窗口。
转到Scene_Map类,在
# 生成信息窗口
@message_window = Window_Message.new
的下面打上:
@window1 = Window_PS.new


# 释放信息窗口
@message_window.dispose
的下面打上:
@window1.dispose


# 刷新信息窗口
@message_window.update
的下面打上
@window1.refresh
注意后面那个refresh是标签名

再次运行游戏,成功
这只是一个简单的样例,更复杂的就要看各位作者了

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
 
 
©2010-2024 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。