赞 | 0 |
VIP | 1 |
好人卡 | 0 |
积分 | 1 |
经验 | 179136 |
最后登录 | 2013-7-1 |
在线时间 | 9 小时 |
Lv1.梦旅人 查无此人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 9 小时
- 注册时间
- 2006-5-8
- 帖子
- 1399
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
{/gg}
电子书版本:http://rpg.blue/web/htm/dj79.htm
整理完整版
http://rpg.blue/upload_program/files/上.doc
http://rpg.blue/upload_program/files/中.doc
http://rpg.blue/upload_program/files/下.doc
另外补上战斗系统讲学.....{/gg},这个战斗教学主要讲的是算法。。
http://rpg.blue/upload_program/files/战斗教学.doc
RGSS游戏系统术语列表(比之前那个Near的完整多了)
http://rpg.blue/upload_program/files/RGSSreference--1.doc
http://rpg.blue/upload_program/files/RGSSreference--2.doc
最后的是事件版SLG,变量的超级运用汉化版因为脚本地方失误所以无法全部完成。 操作: 战斗中按B查看行动力AP和敌人数, 按Z地图上攻击
工程:http://rpg.blue/upload_program/files/LnSmiTactcl.rar
脚本部分修改不完整参照(不要代替工程中的脚本, 因为没有完整地找出所有改动地方, 请新建工程查看)http://rpg.blue/upload_program/files/Scripts中文.rar
以上全部转自Creation Asylum
原作者: Dubealex 以及 :Near Fantastica(特别讲)
主讲人(翻译): frantice (充其量新人一个…..)
已翻译时间;853分钟
补充说明:
为了保证规范,一些重要的术语援引原文不翻译,请见谅!本人基础语法不过关,纯实干派,错误的地方请指出!还有,如果大家觉得不好的话,直接回帖叫我不要更新即可,我不介意的…………还有因为电脑关系,贴上来的时候把半角的都弄成全角了,大家注意改下,不然会出错
这里是开学宣言
大家好,我就是传说中的女F。^0^
今天开始我来边翻译边讲述一些关于RGSS和Ruby的教学,
在翻译的基础上融合了大量自己的心得体会,希望能给大家带来一些收获。对于不知道什么是RGSS和Ruby的新人们,我的建议是先把事件弄懂了,然后再看这个教程.我们这个教学的目标是:能够写出属于自己的简单脚本!
教学大纲:
第一讲: Ruby 和RGSS的概况
第二,三讲: 基本词汇和语法
特别讲: Near Fantastica的RGSS语法列表
第四,五讲: 变量和常量
第六,七,八讲: 条件语句
第九讲:Loop专题
第十讲:Inheritance专题
第十一-----十七讲(重点): Scene和Window 专题
第十八-----二十讲(也是重点): Selectable/Command 窗口专题
第一讲 什么是Ruby?什么是RGSS?
首先请在工程中按下F1看基本知识
我不重复别人说的话了.Ruby它诞生于1993年2月24日,它是面向对象的解释性语言(即00),任何一种00语言都包含以下4个部分:
-Class 类
-Methods 方法
-Messages
-Arguments
-Variables/Constants 变量和常量
它们之间的关系:---------我讨厌贴图
http://ftp2.66rpg.com/3/临时� ... Battle Arena/1.JPG
一个对象的例子
假设class为一个汽车制造厂 ,那么目标就是汽车. 汽车制造厂包含所有来制造汽车的功能,每辆车都是一种同样东西的不同形式.这些不同的汽车形式也是不同的对象,也可以在不改变其他汽车对象的基础上在加以改造.当汽车公司需要另一辆汽车的时候, 他们只用简单地向汽车制造厂要求制造一辆新车,只要盖好了一个工厂(就是class-类)你就不需要每次都去重复地对汽车(object 对象)操作了.
一个处理对象的例子
在 RPG Maker XP里, 你的人物都有很多属性,如”名字””HP””等级”等等,这些在游戏里都能打开菜单看到.它们是靠后台执行你所发出的指令来完成显示的.
一种方法事实上定义了目标对象接收到什么信息,接受到会发生什么.所以说,每次消息传送或接收,对象都是和它的制造者(class-类)所关联,靠相关的方法来执行.
回到人物的例子,我们就知道了有一种类专门定义人物,这个类有种为你发给目标对象的信息而生成的方法.然后我们就找到一种叫”name”的方法
什么是RGSS?
“Ruby Game Scripting System”是RGSS的全称,它不是一种语言.鉴于大家都知道它是音乐测试左边那个按扭,其他不多说了.
下面看个例子,一行描绘图片的脚本:
image = Sprite.new
image.bitmap = RPG::Cache.picture(name of picture)
理论上,要在屏幕上显示出图片需要2行脚本,因为你要使用一个叫”Sprite”的类, "Sprite" 在RMXP中已事先编好(不在脚本编辑器中).也需要一个module模块 (也不在脚本编辑器中)
RGSS编辑器
脚本里的字体各有颜色,不同的颜色都有什么含义呢?
蓝色: 语法, 如 def, class, end, when, if, case…..
红色: 数字, 如 1, 2, 3, 4,………….
浅蓝色: 符号, 如+, * , = , || ,
绿色: 注释, 不被执行的内容
紫色: 自己看- -
常用快捷键
Control+F 本脚本页中寻找
Control+Shift+F 全局搜索
Control + H 替换
Control + G 转到第几行
http://ftp2.66rpg.com/3/临时� ... Battle Arena/2.JPG
第二讲 基本词汇和语法(上)
一些基本的废话将完了,我们直接进入正题^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来结束呢?看看这个.是不是清楚了点呢?:
http://ftp2.66rpg.com/3/临时� ... Battle Arena/3.JPG
好了,我们回头看看事件页写的那行” 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”类,就像第一讲里那个汽车厂的例子一样,改变一个是不会影响另一个的.
那么他是如何运行的呢?请看第三讲.
|
|