目前共有2篇帖子。
【教程】跟我從頭學腳本(十一)
1樓 蓝晶の骑士 2011-2-10 23:44
轉載自:www.66rpg.com          

原作者:Dubealex           

        Near Fantastica(特別講)          

主講人(翻譯):frantice          
電子書製作:小湖 


第十一講: Scene和Window 專題一


終於開始動手實踐創建自己的窗口了^0^, 這講開始請務必跟着我一起實踐^0^, 遇到什麼不懂的地方請查看以往的教學~
我們先自己建立個腳本的,名字叫My_Window, 這樣今後查看方便,而且測試時候也方便,只用在事件中調用:
My_Window.new 就行了

好了, 現在開始寫腳本.
先給它一個父類, 我們這個窗口是不用於選擇的, 所以就用Window_Base作為父類.
class My_Window < Window_Base 
 def initialize 
   super(0, 0, 200, 200) 
 end 
end
如果測試的話, 我們會發現它會等一會兒就消失了,這很正常,因為Scene_Map這個東西; 我們沒有告訴它要刷新這個窗口.我們待會兒告訴它,我們現在只是建個簡單的窗口.
我們用super(x坐標, y 坐標, 寬度, 高度)來建立了一個窗口
上一講中學習過"super",那我們這裏它繼承什麼東西呢?因為這裏 Window_Base是父類, 所以我們看看父類中都初始化了什麼東西^0^
def initialize(x, y, width, height) 
super() 
@windowskin_name = $game_system.windowskin_name 
self.windowskin = RPG::Cache.windowskin(@windowskin_name) 
self.x = x 
self.y = y 
self.width = width 
self.height = height 
self.z = 100 
end
這個方法在每個window窗口中都被援引,它定義了窗口的大小,位置,皮膚等等特性. 
那麼它後面跟着的def initialize(x, y, width, height)是做什麼的呢?
我們看看RMXP的運行過程吧~:
[編譯super語句] 
- 接收到 "super" 指令 
--> 在 Window_Base中, 我們設定了以下東西, 用super 發送出去
-> x=0 
-> y=0 
-> width=200 
->height=200 
--> 窗口建成
-回到window 編碼
[結束]

好了, 回到剛才編好的窗口, 它很難看, 什麼都沒有, 總得給它添加點什麼吧^  ^

class My_Window < Window_Base 
 def initialize 
   super(0, 0, 200, 200) 
   self.contents = Bitmap.new(width-32, height-32) 
   self.contents.font.name = "黑體"   
   self.contents.font.size = 20 
   self.contents.draw_text(0, 0, 200, 32, "Yay, some text !") 
 end 
end
必須要有3行來添加文字, 因為我們需要寫明它的字體, 字號, 以及要寫什麼東西.3 好了,繼續解釋每行的原理:
self.contents = Bitmap.new(width-32, height-32) 
這個是幹什麼的?我們知道了,我們窗口的內容都要是"Bitmap" 類型 (Bitmap不在腳本編輯器中定義). 這樣我們就能在窗口中寫入文章.
要知道為什麼要減去32嗎? 因為箭頭指着的數據是仍然要被看到, 也許是因為bitmap事實上要比window 大一點吧^0^ .(這也就是文字會被窗口的邊緣給咯擦掉的原因啦)
self.contents.draw_text(0, 0, 200, 32, "Yay, some text !")
這行真正地定義了你的文章, 它個格式就是(x坐標, y 坐標, 寬度, 高度,」內容」)

當然,有些文章是用另一個方法來寫的,那就是 "refresh". 它只用於當窗口顯示的時候需要改變內容的,如 Window_PlayTime (遊戲時間), 不過不是 Window_Gold.哦~~

好了, 我們先做個筆記, 下面是我們要做出來的效果圖. 我們需要創建3個window啦. 
2樓 蓝晶の骑士 2011-2-10 23:45

回復帖子

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