- IP属地
- 英国
- 2018/12/23
- 69
- 64
- · 发布于未知
因为1.4更新在即,本帖暂停更新!若有任何人有需求,请联系我进行针对性补更
游戏中对于一些条件进行判定的时候,为了方便起见会预先存一个数组。
例如,星尘龙一共有4种射弹:头1,身2,尾1,它们都拥有不同的ID。那么需要判断一个射弹是不是星尘龙的一部分,就要比对这个射弹的ID是不是四者之一,即需要进行最多四次比较与跳转。如果预先存一个长度为714(游戏中一共有714种射弹)的数组,把星尘龙对应的那四个元素置1,其余元素置0,那么判断一个射弹是否是星尘龙,直接根据其ID调出数组中对应的元素,并判断是否为1即可,只需要进行一次判断、一次加法(数组元素定位)、一次跳转。游戏中判定实体块、平台、人工墙等等,均是使用这种方法,省去逐个比对的复杂度。
本帖后续楼层将列举这些集合的内容,对于比较大的集合还将进行简单概括总结,供查阅。善用Ctrl+F快捷键查找。1楼给目录
WallID中的数组:2楼
ItemID中的数组:3楼
NPCID中的数组:5楼
ProjectileID中的数组:6楼
TileID中的数组:7楼
Main中的buff数组:8楼
游戏中对于一些条件进行判定的时候,为了方便起见会预先存一个数组。
例如,星尘龙一共有4种射弹:头1,身2,尾1,它们都拥有不同的ID。那么需要判断一个射弹是不是星尘龙的一部分,就要比对这个射弹的ID是不是四者之一,即需要进行最多四次比较与跳转。如果预先存一个长度为714(游戏中一共有714种射弹)的数组,把星尘龙对应的那四个元素置1,其余元素置0,那么判断一个射弹是否是星尘龙,直接根据其ID调出数组中对应的元素,并判断是否为1即可,只需要进行一次判断、一次加法(数组元素定位)、一次跳转。游戏中判定实体块、平台、人工墙等等,均是使用这种方法,省去逐个比对的复杂度。
本帖后续楼层将列举这些集合的内容,对于比较大的集合还将进行简单概括总结,供查阅。善用Ctrl+F快捷键查找。1楼给目录
WallID中的数组:2楼
ItemID中的数组:3楼
NPCID中的数组:5楼
ProjectileID中的数组:6楼
TileID中的数组:7楼
Main中的buff数组:8楼
最后编辑: