?
?
無論地圖畫面還是菜單畫面等等,擔(dān)任各畫面的處理的是場面類。?
把所有的場面類列個表,類名和腳本名一一對應(yīng)。還有,Scene_File?類作為?Scene_Save?和?Scene_Load?的超級類而定義的這個列表沒包含。
類???????????內(nèi)容?
Scene_Title??標(biāo)題畫面?
Scene_Map??地圖畫面?
Scene_Menu??菜單畫面?
Scene_Item??條款畫面?
Scene_Skill??技能畫面?
Scene_Equip??裝備畫面?
Scene_Status??狀態(tài)畫面?
Scene_Save??儲存畫面?
Scene_Load??載入畫面?
Scene_End?游戲結(jié)束畫面?
Scene_Battle?Battle?戰(zhàn)斗畫面?
Scene_Shop?商店畫面?
Scene_Name??名字輸入畫面?
Scene_Gameover??游戲結(jié)束畫面?
Scene_Debug??排除故障程序畫面?
場面類的實例由全局變量$scene保存。這個變量能調(diào)出main方法,是繼續(xù)游戲的構(gòu)造所在。典型的場面類的骨架如下:
class?Scene_Xxxx
def?main
Graphics.transition
loop?do
Graphics.update
Input.update
update
if?$scene?!=?self
break
end
end
Graphics.freeze
end
def?update
end
end
Graphics.freeze?和?Graphics.transition參看Graphics類的詳細(xì)資料。
if?$scene?!=?self?就是如果全局變量?$scene?指向的對象不是自己的話,Input.update?是更新游戲?pad和鍵盤的輸入信息的方法。參照?Input?類的詳細(xì)資料。
我們曾經(jīng)在前面提到過,RGSS?的游戲的最基本的事情就是下面的行為:
loop?do
Graphics.update
end
場面類的?main?方法是從這里變復(fù)雜來的,那么看看是怎樣變復(fù)雜的吧:
Main?腳本是最后的腳本,以上的腳本基本都是全部類的定義,所以實際上,真正腳本的開始實行是從這里,Main?腳本除去注釋?,?僅有成為?11?行。
begin
Graphics.freeze
$scene?=?Scene_Title.new
while?$scene?!=?nil
$scene.main
end
Graphics.transition(20)
rescue?Errno::ENOENT
filename?=?$!.message.sub("No?such?file?or?directory?-?",?"")
print("?文件夾?#{?filename}?沒被發(fā)現(xiàn)。")
end
所謂?begin?..?rescue?..end?是異常處理的語句。
Graphics.freeze?和?Graphics.transition?剛才也已提出了。
剩下的?4?行,擔(dān)當(dāng)標(biāo)題畫面的處理的?Scene_Title?類的實例,生成全局變量?$scene?。
版權(quán)聲明:RUBY文檔中心的所有文章標(biāo)明[原創(chuàng)]的均為本站作品,版權(quán)屬RUBY中文化計劃,若轉(zhuǎn)載請注明;標(biāo)明[翻譯]的其外文版權(quán)歸原作者,譯文版權(quán)屬RUBY中文化計劃;標(biāo)明[轉(zhuǎn)貼]的,若原作者感到侵犯了他的著作權(quán),那么請及時跟主持人聯(lián)系,我們會盡快更正。
?