轉載自:www.66rpg.com
原作者:Dubealex
Near Fantastica(特別講)
主講人(翻譯):frantice 電子書製作:小湖
第三講 基本詞彙和語法(下)
大家應該沒忘記上回的內容吧^0^,好,不廢話了,今天繼續! 我們來看看他的腳本是怎麼寫的,因為說明較長,所以給腳本標上了行數:
1 class Say_Something 我們這裡創建了一個新的對象叫"message1"它將做為Say_Something的一個instance來使用.也就是說我們對這個對象的任何操作都是在這個Say_Something類里來定義的".我們已經在這個類的initialize方法裡添加了Argument 接收器(不明白的見第一講的圖示), 我們需要發送這些argument .那麼怎麼發送到這個類里呢?和我們處理它的方法一樣,在這個類名里列出他們就行了 2 attr_accessor :greeting 我們在這裡定義了一個ATTR 值,全稱是 Attribute. 我們可以簡單地用ATTR_ACCESSOR 來定義一個新的可讀可寫,適用於由Say_Something創建的任何對象的instance的功能.我們第一個ATTR 的名字叫greeting. 3 attr_accessor :name 定義另一個ATTR, 名字叫name 4 def initialize(greeting, name) 我們定義了一個新的方法initialize.看過前面教學,你大家應該明白這個initialize 的方法是在一個對象由class類創建時,第一個執行的方法.所以我們添加Argument 接受器,那麼這個方法可以被接收到了. 在這個例子中, 這些"argument" (ATTR)是"greeting" 和 "name". 我們在冒號的兩邊放上這些argument接收器和方法的名字. 注意這些"Argument 接受器是 " "接收者"; 也就是說逗號兩邊的都是變量名,它們在後來還是有用途的. 5 @greeting=greeting 這裡我們新定義了一個"Instance 變量" , 他們把"greeting"這個數據傳送出去..一個 instance 變量都由 @ 開頭,在同類的每個方法中都非常有用.它們都在方法中定義 通過這樣我們就能命令RMXP接收"greeting" 並把它放在"@greeting" 里以便其他方法中調用 6 @name=name 同上,不過這回的attribute是」name」 7 end 結束方法initialize 8 def say 定義一個新的叫」say」的方法 9 print @greeting + " " + @name 我們這樣編碼,當」say」這個信息被對象接收了會怎麼樣.這裡是顯示"@greeting"的內容, 一個空號後加入"@name".的內容. 10 end 結束say的方法定義 11 end 結束 Say_Something 這個類
好了,腳本是看完了,再完整地看一遍: class Say_Something attr_accessor :greeting attr_accessor :name def initialize(greeting, name) @greeting=greeting @name=name end def say print @greeting + 「 「 + @name end end 是不是不那麼撲朔迷離了??
那麼接下來看事件頁腳本,我們也一行一行地看^0^. 1 message1=Say_Something.new("Hello", "Alex") 我們創建了一個新的目標對象叫"message1" ,它是類"Say_Something"的一個instance (也就是說我們對這個對象的任何操作都是在這個Say_Something類里來定義的).我們在這個類的initialize 方法裡已經添加了 "Argument 接受器" , 我們就要發送這些 argument. 2 message2=Say_Something.new("Hello", "Peter") 同1 3 print message1.name 我們用Ruby 的命令"print" 來顯示對象"message1"中儲存的name名字.大家可以看到, 只用這個類的ATTR中定義過的name 名字就能獲得對象的attributes (內容) 4 print message2.name 同3 5 message1.say 我們現在發送了信息給對象"message1",這個信息就是"say". 然後,你告訴"message1" 執行"say」的功能; 再然後,"message1"在它的類"Say_Something"尋找定義過的命令.就這樣,目標對象就返回到了class類中定義過的動作,也就是在屏幕中顯示. 6 message2.say 同5
完整地看下事件頁這幾行腳本: message1=Say_Something.new("Hello", "Alex") message2=Say_Something.new("Hello", "Peter") print message1.name print message2.name message1.say message2.say
好了,今天的教學就到這了,好好回顧一下前三講的東西,主要是理論部分較多,需要好好理解~接下來我們就主要學習如何編碼了,基礎要掌握好才能建好高樓哦~~
|