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

Project1

 找回密码
 注册会员
搜索
查看: 3254|回复: 21
打印 上一主题 下一主题

[已经解决] [已解决]Game_Actor和Game_Actors有什么关系联系?

[复制链接]

Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

1
发表于 2019-4-10 22:42:42 | 显示全部楼层
Game_Actors 是一个类数组(Array-Like),尽管它不是数组但是也可以进行取下标的运算。

游戏进行的时候从始至终只有一个 Game_Actors 的实例,它里面按照角色 ID 存储着所有 Game_Actor 的实例,这些实例仅此一份,在游戏进行中会随着玩家操作不断变化(例如升级,学习技能,当前血量等)。

需要注意在队伍 Game_Party 中也有一个 @actors 数组,这不是 Game_Actors,它记录了当前队伍中的角色,里面的数据仅仅引用 $game_actors 的内容。因此 2 楼的说法是不对的。

点评

我画的示意图对吗?  发表于 2019-4-11 12:21
rb,cxl,awsl  发表于 2019-4-11 10:53
dl,sdl,awsl  发表于 2019-4-11 00:52

评分

参与人数 1+1 收起 理由
百里_飞柳 + 1 rb

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

2
发表于 2019-4-12 19:35:30 | 显示全部楼层
miantouchi 发表于 2019-4-12 18:34
看了你的示意图之后,不知道我理解的对不对,不对的希望指正

第1我理解的:

不太对。

你可以这样理解,$game_actors 是 Game_Actors 类的一个实例,它是一个全局仓库,里面按顺序放着玩家操控的角色的数据。$game_actors[1] 就是存放 ID 为 1 的角色的数据,这个你先前理解的是对的。

@actors 不是 $game_party 的子集,而是 $game_actors 的子集(更详细来说是 $game_actors 内部实现中数组 @data 的子集,这个你参考 Game_Actors 代码就能看见 @data 的定义 )

你这个回复里 “Game_Actor 类的第一个实例内容”的说法是错误的,没有这个概念。

$game_actors 第一个位置是 nil 是因为 ruby 中数组下标以 0 开始,但是角色 ID 以 1 开始。用 nil 是为了占位。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-5 00:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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