王朝百科
分享
 
 
 

RGSS

王朝百科·作者佚名  2009-12-25  
宽屏版  字体: |||超大  

RGSS日本的游戏制作软件Rpg Maker XP所使用的内部脚本系统,是ruby的一种扩展.

RGSS
RGSS编辑器

RGSS(Ruby Game Scripting System),中文意思是 Ruby 游戏脚本系统,是应用面向对象的脚本语言 Ruby 开发 Windows 2D 游戏的系统。使用 RGSS,就和 C 语言等程序语言那样简单,能创建完全原创的游戏系统。Ruby 是一种初学者也能很容易使用,并且功能强大的高级语言。

本文档是从 Ruby 的参考手册上摘录下使用 RGSS 的必要信息,加上关于 RGSS 独特方法的解说重编辑而成。对于 RGSS 的用户,在游戏程序设计方面不重要的部分进行了大幅删减,对各处描述也稍作了修改。因此在描述上可能会出现不正确的情况。作为 Ruby 的参考,请注意那些非常简单的东西。

RGSS中的脚本:

在RMXP(Rpg Maker XP)中,按F11就可以打开[脚本编辑器],左边的窗口是脚本列表,右边的窗口是脚本内容,左下角可以修改脚本名称。

在RMXP(Rpg Maker XP)中,游戏开始运行后,总是从最上边的脚本开始运行,依次往下,所以,经常把变量声明、类声明、函数声明、函数定义的脚本放在上面,而MAIN脚本总是放在最后。

RGSS语法变量类型:

全局变量 $var

实变量 @var

局部变量 var

常量 VAR

数据类型(注:RGSS中变量类型为弱变量,无需定义,只要初始化即可。):

数值型 0~9

浮点型 0~9,小数点

字符串型 加了""的在ASCII码表上的任意字符。

布尔型 true/false

空型 nil

RGSS是Ruby的游戏脚本系统,所以关键字与Ruby原版大同小异,但也有少数修改,如:

RGSS1.02J(或更高版本)中,puts()函数功能被简化为p,添加了print函数,

RGSS1.03J中添加了块注释方法,即以“=begin”开头,以“=end”结束。

RGSS遇到换行符就自动结束当前的这一行,这一点是与VB相似的,当然,RGSS也可以象C语言那样以西文分号结束,这点看习惯。

RGSS主程序开始与结束

begin

程序段

end

RGSS库的开始与结束

modle 库名

程序段

end

RGSS类的开始与结束

class 类名 < [父类]

程序段

end

RGSS自定义函数的开始与结束

def 函数名[(参数)]

程序段

end

RGSS库的调用

include 库名

RGSS类的调用

类名.new[(类中initialize函数的参数)]

RGSS自定义函数的调用

函数名[(参数)]

RGSS中的条件分歧

1.if语句

示例:

if $a == "66rpg"

print("欢迎来到#{$a}")

end

2.if...else语句

示例:

if $username == "admin" and $password == "abc"

print("你好,Admin")

else

print("您无权察看!!")

exit

end

3,if...elsif...else语句

示例:

if $name == "Tony" and $lastname == "Fox"

print("Welcome, Tony Fox!")

elseif $name == "Iceandsnow" and $lastname == "Fox"

print("Welcome, Iceandsnow Fox!")

else

print("Unable Name")

end

4.case语句

case 变量

when 值

语句块

when 值

语句块

else

语句块

end

RGSS中的循环

while ~ end在满足特定条件期间进行循环的情况下使用 while 语句。

a = 0 # 为变量 a 赋值代入 0。

i = 1 # 为变量 i 赋值代入 1。

while i <= 5 # 当变量 i 为 5 以下时循环开始(重复以下处理),

a += i # 变量 a 加上 i 的值。

i += 1 # 变量 i 的值增加 1。

end # 循环结束。

p a # 显示计算结果。

这个示例是求从 1 到 5 这五个数字总和的程序。在这里,变量 i 是用来产生从 1 到 5 这五个数字用的。当然变量名也可以不用 i,一般情况下循环处理用的变量会使用 i、j、k 为名称。

那么,这个程序最重要的是 i += 1 这行。如果没有这行 i 的值永远为 1,而 i <= 5 的条件也会一直满足,就会成为无限循环。因此,这里每次都向 i 加上 1 使得 i 的值依次变为 2、3、4、5、6 从而使得循环结束。

变量 a 和 i 的数值变化,如下表所示。

循环 a 的值 i 的值

初始状态 0 1

1 次后 1 2

2 次后 3 3

3 次后 6 4

4 次后 10 5

5 次后 15 6

循环 5 次后,在 a 的数值里面实际上进行了 1+2+3+4+5 的计算,i 的值也超过了 5 而执行 end 使得循环结束。

然后以 p 命令显示最终 a 的值,就会显示出答案 15。

变化范围

数值的范围,例如类似于「从 1 到 5」这样的概念就称为变化范围。

1..5

上述示例表示「从 1 到 5」的意思。使用 .. 运算符,就能作成一个变化范围。

而且,使用 ... 运算符也可以。

1...5

和 .. 不同的是「不含最后一个数」。所以,这种情况实际上表示的是「从 1 到 4」的意思。

for ~ in ~ end

想在变化范围表示的范围内循环的情况下使用 for 语句。

a = 0 # 为变量 a 赋值代入 0。

for i in 1..5 # 变量 i 的值按从 1 到 5 的范围变化,

a += i # 变量 a 加上 i 的值。

end # 循环结束。

p a # 显示计算结果。

这个示例和使用 while 语句的示例完全相同,也是求从 1 到 5 这五个数字总和的程序,但比使用 while 的情况更加简洁。在 while 中变量 i 加上 1 表示的是从 1 到 5 的范围,然而在 for 中是用变量 i 按「从 1 到 5 的范围」的顺序代入来表示。表面看起来不同,但实际上进行的是意思完全相同的处理。

Ruby 中有许多语法,循环中也存在各种各样不同的方法。在不同语法使用中,请按照这个示例提示的「让编写更简便」的方式来思考。实际上,如果理解了条件分歧和循环的话,就能进行大部分逻辑运算了。

loop do ~ end

未指定循环次数和条件的情况下,也就是想进行无限循环时使用 loop 语句。这个与 while 和 for 语句的性质稍微有所不同,一般情况下没有必要注意。

i = 0 # 为变量 i 赋值代入 0。

loop do # 循环开始。

i += 1 # 变量 i 的值增加 1。

p i # 显示变量 i 的值。

end # 循环结束。

这个示例是「一边把 i 的值加上 1,一边显示 i 的值」的程序,没有结束条件。一旦运行的话就会连续显示 1、2、3……。如果这种对话框不断显示的话,就算要结束程序也是不可能的,只能按着 F12 键不放强行关闭对话框,并点击右上方的结束按钮关闭程序。

break

想中途中断循环就要使用 break 命令。

i = 0 # 为变量 i 赋值代入 0。

loop do # 循环开始。

i += 1 # 变量 i 的值增加 1。

if i == 5 # 如果变量 i 的值为 5 的话,

break # 中断循环。

end # 条件分歧结束。

p i # 显示变量 i 的值。

end # 循环结束。

上述示例在程序中加上了「i 等于 5 的就中断循环」的条件。运行该程序,显示 1、2、3、4 就结束了。

break 即使在 while 和 for 等其它方法作成的循环中也能使用。

next

在不中断循环的情况下,跳过本次循环而进入下一次循环时使用 next 命令。

for i in 1..5 # 变量 i 的值按从 1 到 5 的范围变化,

if i == 3 # 如果变量 i 的值为 3 的话,

next # 进入下一次循环。

end # 条件分歧结束。

p i # 显示变量 i 的值。

end # 循环结束。

运行这个示例,会显示 1、2、4、5。

程序示例1,helloworld程序

begin

print("HelloWorld!!")

end

2,数值运算

begin

x = 10

y = 20

p x+y

end

3,条件判断

begin

a = 10

if a>=5

print("a的值大于等于5")

else

print("a的值小于等于5")

end

end

4,循环

begin

for i in 1..3

print("这是第#次显示")

end

end

begin

do

print("这是第#次显示")

while i <= 4

end

begin

loop do

i++

print("这是第#次显示")

if i = 4

break

end

end

end

5,函数调用

class My_Class

def mian # 主处理

x = 6

y = 5

addnum(x, y)

end

def addnum(num1, num2)

sum = num1 + num2

p sum

end

end

6,类的调用

begin

if $scene != nil

$scene.main

else

exit

end

$scene = Scene_MyClass.new

end

7,库的生成及调用

module MYMODULE

def division(num1, num2)

sum = num1/num2

return sum

end

end

class My_Class

include MYMODULE

def main

x = 25

y = 16

z = division(x, y)

p z

end

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格&#8203;十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有