本帖最后由 enghao_lim 于 2021-9-17 16:20 编辑 1. Game_Actors只是一个类Array,更严格上来说是Hash表,它并不是时时储存着所有的角色,只有在角色第一被调用是才会储存,之后一直带入存档,也就是说如果有角色从来都没有被使用过,$game_actors里头也不会储存过该角色的资料,具体被调用才储存参考函数:def [](actor_id)。 2. 如果初始队伍就是1,2,4那3不会被创建。如果3曾经离队,也会记录在案。 3. 如果不调用refresh,那读档后的阿尔西斯就不再是阿尔西斯。给个简单的测试方法:取消调用refresh。初始队伍不要有阿尔西斯,然后让阿尔西斯加入,存档,返回标题,读档,再让阿尔西斯加入。恭喜完成两个阿尔西斯。 不调用refresh的后果就是造成$game_party.actors都是$game_actors的克隆体,克隆体看似一样,但其实已经不一样。后续的RM其实已经解决了这个会误导新手的问题,那就是$game_party.actors不再是储存对象本身而是ID而已,这样存档的时候就不会有克隆体。 |
参与人数 2 | 星屑 +150 | 赞 +2 | 收起 理由 |
---|---|---|---|
RyanBern | + 150 | + 1 | 认可答案 |
miantouchi | + 1 | 认可答案 |
第三个问题,对game_party的refresh,它的内容就是对@actors的重新排序。refresh的原文是:“游戏数据载入后角色对象直接从$game_actors分离,回避由于载入造成的角色再设置的问题。”如果队伍的角色顺序产生变化,最好是要refresh的。 至于内存地址,如果你有耐心,可以调出cache的脚本,追踪并记录它的地址,如行走图的内存精灵就是它的路径,一般是:Graphics/Characters/+文件名。 |
参与人数 1 | 赞 +1 | 收起 理由 |
---|---|---|
miantouchi | + 1 | 塞糖 |
什么意思,你有3个问题?还是教程里提出了3个问题? |
本帖最后由 soulsaga 于 2021-9-16 22:27 编辑 这个看不懂..... |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-22 15:16
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.