任何人都能制作游戏,史莱姆出现了!
这次来给战斗角色头上添加状态图标,就是默认敌人头上这个东西,当有多个状态时会不断切换显示。
·新建一个JS文件,写好注释。在之前写血条的时候,我们已经知道Sprite_Enemy是战斗中敌人的精灵,然后就在Sprite_Enemy找到了目前这个ICON函数,ICON就是图标的意思,总之先复制过来。
·在之前写血条的时候,我们已经知道Sprite_Actor是战斗中角色的精灵,所以我们把复制过来的这个函数进行修改,改成角色用的。我们给角色写了新的函数,还要把这个函数用起来。
·我们先搜索看看敌人是怎么用起来的,它是放到初始化成员这个函数下面,把角色的这个初始化成员函数复制过来,修改成继承call,能继承就继承,能解决兼容问题。在底下把显示状态图标的函数放进去,这样就是执行完旧的初始化函数后会执行这个显示状态的函数。
·把我们的插件放入游戏中测试,但是没有显示出来。全局搜索我们建立状态图标精灵,就是_statelconSprite这个变量,是保存了我们建立的精灵的。找到这么多东西,我们一个一个看过去,actor没有的,而enemy有的,都要添加过去。
·先是设定battler,就是角色数据,复制过来,修改成继承call。这里要注意,括号里面除了传递this自身,也要把battler传过去,不然旧函数就没有battler了。
·在下面添加状态图标精灵设定角色,这个更新状态精灵的函数,actor没有,先复制过来,修改成actor的。然后找到在enemy里更新状态精灵的用法,把actor的update复制过来,修改成继承call。
·enemy那里是写到if判断里面的,所以我们也加个if判断,在里面写下更新状态精灵。保存后,来到游戏,会出现这样的报错,提示说高不存在。这种情况,也可能是高的上级不存在,也就是this.bitmap。
总之先看看Sprite_Actor里面的bitmap情况,找遍了SpriteActor也没找到this.bitmap这个变量,map这个变量可以判断多半没有这个变量存在。但是看到了_mainSprite这个变量,它是读取的Sv角色战斗图,基本可以肯定这就是要找的。
把报错的bitmap替换过来,现在有显示出来了,但是Y坐标明显不对。因为敌人的战斗图是一张图一个角色的,而角色的战斗图是一张图有很多个小人的。虽然游戏中只显示其中一个小人,但是代码是获取的整张图片的,所以只要把图片的高除以Y轴上小人的个数就可以了,这样就得出每个小人的高度。
保存,测试。好了,可以了。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved