目前共有2篇帖子。 內容轉換:不轉換▼
 
點擊 回復
343 1
【教程】跟我从头学脚本(二)
高級弟子 五級
1樓 發表于:2011-2-10 23:39

转载自:www.66rpg.com 

原作者:Dubealex  

        Near Fantastica(特别讲) 

主讲人(翻译):frantice 
电子书制作:小湖 


第二讲 基本词汇和语法(上)

一些基本的废话将完了,我们直接进入正题^0^..接下来的请大家一起跟我实践~
先在RGSS编辑器中新建一个脚本,插入这些:
class Say_Something 
 def initialize 
   print “I am therefore I’m coded” 
 end 
end 
然后找个npc并在他事件页的脚本那里写入Say_Something.new
点他后我们看到什么了呢?冒出来一个写着” I am therefore I’m coded”的窗口.
这是为什么呢?让我们来一行一行地看:
class Say_Something  这里我们创建了一个叫Say_Something 的class (类)
def initialize  这里我们定义了一种新的方法叫Initialize (初始化)
print “I am therefore I’m coded” 我们增加了当”initialize”的方法被调用时执行的东西
两个end是语法

我们再进一步学习:
“initialize” 是一种默认的方法,当你在事件中调用脚本时候执行. 脚本语句”Say_Something.new” 你用”new”的信息命令 RMXP 来创建Say_Something的对象
关于end:
哪些词语需要用end来结束呢?看看这个.是不是清楚了点呢?:

高級弟子 五級
2樓 發表于:2011-2-10 23:39

好了,我们回头看看事件页写的那行” Say_Something.new” ,注意到了吗, 它前面没有写对象, 我们可以试着改为” my_object = Say_Something.new” , 效果是一样的,不过心里舒坦了点吧…….这是为什么呢???
这里我们创建了一个新的目标对象叫”my_object” ,它应该是在”Say_Something”这个class里的,但是我们开头那个”Say_Something “,除了一条信息外空空如也..所以我们没必要在事件那里多一个对象.

那么,我们来给这个空空如也的”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 
然后在那个npc事件脚本里重新写为:
message1=Say_Something.new(“Hello”, “Alex”) 
message2=Say_Something.new(“Hello”, “Peter”) 
print message1.name 
print message2.name 
message1.say 
message2.say 

执行看,是不是华丽多了?我们看到4个冒出来的窗口.分别显示”Alex”,”Peter”,”Hello Alex”和”Hello Peter”
这里我们创建了两个目标”message1”和”message2”他们都依靠”Say_Something”类,就像第一讲里那个汽车厂的例子一样,改变一个是不会影响另一个的.
那么他是如何运行的呢?请看第三讲.

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:343 回複數:1
評論數: ?
作者: 蓝晶の骑士
最後回復:蓝晶の骑士
最後回復時間:2011-2-10 23:39
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。