目前共有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許可協議進行許可。