赞 | 7 |
VIP | 0 |
好人卡 | 0 |
积分 | 19 |
经验 | 0 |
最后登录 | 2022-10-10 |
在线时间 | 316 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 1939
- 在线时间
- 316 小时
- 注册时间
- 2018-3-4
- 帖子
- 57
|
本帖最后由 真紅樂章 于 2018-4-8 05:29 编辑
承上回
-----------------------------------
上回读到
- def exp_for_level(level)
- self.class.exp_for_level(level)
- end
复制代码
self这个在置顶教程有说到
不过小紅有看没有懂就是了……
所以说这exp_for_level(level)的定义就是它自己的class的它自己吗……
总之先跳class好了
class的内容又在同class的下面呢
- def class
- $data_classes[@class_id]
- end
复制代码
这次到$data_classes
- $data_classes = load_data("Data/Classes.rvdata2")
复制代码
读取一个文件
好吧小紅从classes看出来应该是职业的意思
然後[@class_id]在class Game_Actor最上面setup的时候被等於了actor.class_id
结果因为看不懂@actor_id是啥所以跳过了……所以再跳……
然後.exp_for_level(level)在小紅看来完全是逻辑回圈了……
总之不懂……跳……
回到def init_exp
因为剩下的[@class_id]是不懂的所以跳……
这麽一来init_exp的解读就像没读过一样被跳光光了
於是回到def setup(actor_id)
跳过init_exp来到第十行
内容同class
- def init_skills
- @skills = []
- self.class.learnings.each do |learning|
- learn_skill(learning.skill_id) if learning.level <= @level
- end
- end
复制代码
第一行
一个@变量被等於一个空的数组
第二行
- self.class.learnings.each do |learning|
复制代码
置顶教程有写说each do的前面会是一个数值范围来迭代後面被||包着的东西
所以先来看前面的self.class.learnings
虽然因为self.class在上面已经跳过了所以小紅知道这次一定又要跳
不过还是先试着找找看.learnings是甚麽好了
结果全局查找是只找到这个和另一个同样是self.class.learnings……
……
小紅能怎麽办
小紅也很绝望啊
……
跳……
看迭代内容
- learn_skill(learning.skill_id) if learning.level <= @level
复制代码
嗯……因为if前if後都是要用上learning的
然後小紅压根解不出来learning是甚麽
所以跳……
init_skills的解读比init_exp更绝望的完全跳过了
於是又回到def setup(actor_id)
第十一行
- init_equips(actor.equips)
复制代码
内容同class
- def init_equips(equips)
- @equips = Array.new(equip_slots.size) { Game_BaseItem.new }
- equips.each_with_index do |item_id, i|
- etype_id = index_to_etype_id(i)
- slot_id = empty_slot(etype_id)
- @equips[slot_id].set_equip(etype_id == 0, item_id) if slot_id
- end
- refresh
- end
复制代码
第一行
- @equips = Array.new(equip_slots.size) { Game_BaseItem.new }
复制代码
一个@变量被等於一个数组
数组长度是(equip_slots.size)然後内容是{ Game_BaseItem.new }
先看equip_slots.size
equip_slots内容同class
- def equip_slots
- return [0,0,2,3,4] if dual_wield?
- return [0,1,2,3,4]
- end
复制代码
dual_wield?的内容在class Game_Actor的父类的父类class Game_BattlerBase里
- def dual_wield?
- slot_type == 1
- end
复制代码
slot_type的内容就在def dual_wield?上面
- def slot_type
- features_set(FEATURE_SLOT_TYPE).max || 0
- end
复制代码
features_set的内容在同class的上面
- def features_set(code)
- features(code).inject([]) {|r, ft| r |= [ft.data_id] }
- end
复制代码
.inject在置顶教程里有找到是集合迭代计算
所以前面的看不懂的features(code)应该是一个不知道从哪里来的数组
然後()里的[]是後面变量的初始值
所以初始值是一个空的数组吗
然後後面的因为是一个{}包起来的东西而不是教程里被||包起来的东西所以小紅无法解读
能怎麽办……也很绝望……跳……
於是一跳就跳回def init_equips(equips)的第一行的後半部份
{ Game_BaseItem.new }
好吧……小紅看不懂把整个class Game_BaseItem弄成数组的内容是怎麽弄的
所以很绝望……跳……
跳………
跳…………
跳不起来了……
-----------------------------------
其实小紅是觉得自己很努力想要学习的
但是这个自学的过程嘛
自学教程给小紅的感觉就是绝大部份都说着入门结果里面各种专业术语……
对於已经学懂了的人来说大概是显浅易明而对於未学懂的人来说……就是看不懂呢
至於那能看懂的教程小部份小紅觉得自己是有个小成果的毕竟都写出一个不能动的新窗口出来了喔
只不过是在能动和不能动之间的细节用了两个月时间还是弄不清而已
小紅是有试过想要参考其他分页脚本的
结果网上压根找不到简单的分页脚本啊
能找到的全是各种自定义数值加各种自定义功能加各种各样看不懂东西全部写在一起的超级复杂的大佬级多元化图鉴脚本的说
等到小紅找到这里来还以为终於找到一个可以求教的地方了呢
结果小紅在这一帖里都死皮赖脸地秀下限了喔
看不见援手……看不见援手……看不见援手……
这个从Scene_Item开始的试着解读基本上连Scene_Item第一句的super都还没解完小紅就已经解不下去了呢
跳过的地方已经多到小紅都不知道自己浪费半个月时间到底解出甚麽来了
这样解下去大概也不会有甚麽义意了吧
其实小紅曾经以为总会有路过的大佬愿意提携一下的说
所以有大佬愿意来给小紅答案吗 |
|