设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
楼主: DeathKing

[讨论] Ruby/RGSS Tips 每日一更 [技术区的版聊帖?]

  [复制链接]

Lv3.寻梦者

梦石
0
星屑
1015
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

 楼主| 发表于 2010-8-26 10:31:15 | 显示全部楼层

Sample - $game_switches和$game_variables

本帖最后由 DeathKing 于 2010-8-26 11:14 编辑

2010-08-26

$game_switches和$game_variables分别掌管游戏开关和游戏变量,他们都是数组(Array),访问使用的是[]方法,修改使用的是[]=方法。

对于$game_switches来说有效值为true(真,游戏中为开),false(假,游戏中为关);
对于$game_variables来说,理论有效值是Object(可以理解为所谓Ruby可识别的对象),但因为编辑器的限制,只能是数字(Numeric)或者字符串(String)。

将1号开关打开:$game_switches[1] = true
将5号变量归零:$game_variables[5] = 0


内幕:
事实上,$game_switches和$game_variables并不是一个Array,其实变量@data才是一个数组。
Game_Switch和Game_Variable类定义了[]和[]=两个方法来从外部访问@data而已。


补充:
紫苏:可以具象化——这两个东西实际上就是开关数组和变量数组的外壳,通过接口与外部通信
小幽的马甲:顺便,这俩的访问和修改不受数据库里上限影响——并且本来会返回nil时会返回0或false

点评

精灵看到这篇时候震精了:我一直都把他们当成数组来着(因为在Game_variables和Game_switches)里面已经初始化了所有的开关变量的说……  发表于 2010-11-29 13:56
@trentswd:确实可以当成 Ruby 的运算符重载,只须知 Ruby 的“运算符”本质上还是方法,[]、= 之类的允许出现在方法名字元中的特殊字符只是一种语法糖(即本质上还是 .[]、.= 的调用形式)   发表于 2010-8-27 07:52
moy
经常用for循环批量初始化...算是批量操作的小技巧吧,数组相对于普通hash的便利性体现之一~~  发表于 2010-8-27 07:23
我一直把这个当重载运算符来看……  发表于 2010-8-27 03:20
..... 有点高端....  发表于 2010-8-26 12:46

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-29 19:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表