塔防游戏,怎么实现炮塔升级后增加伤害。



  • QQ图片20200520221445.png 我点击升级炮塔按钮增加炮塔实例数值的伤害,但是子弹碰撞怪物还是原来的伤害值,怎么取增加后炮塔伤害的值减怪物血量?



  • 想了一下午没想通



  • 这个是因为你的实例筛选不对,这段事件,子弹碰撞怪物取的伤害值是来源于所有炮台1实例中最开始被创建的实例(预览的时候,在下方调试窗口的左侧,找到这个炮台1对象,点开,编号为0的那个就是最先被创建的炮台1实例),你通过升级变动了炮台的实例变量的伤害值并不是没有效果,而是这段事件没有选中对应的炮台实例,所以让你错觉它没有效果了。
    要修改的话,你可以给子弹加一个实例变量,当子弹被创建时,把这个变量的值设置为生成该子弹的炮台实例的uid,从而间接使子弹可以找到来源炮台,然后子弹跟怪物碰撞时,先按这个子弹的实例变量选中子弹的来源炮台,再去调用这个炮台的伤害变量,数据就准确了,也就是你升级对应炮台提升了伤害变量的值时,能正确产生“升级增加伤害”的效果了。



  • 游客 在 塔防游戏,怎么实现炮塔升级后增加伤害。 中说:

    这个是因为你的实例筛选不对,这段事件,子弹碰撞怪物取的伤害值是来源于所有炮台1实例中最开始被创建的实例(预览的时候,在下方调试窗口的左侧,找到这个炮台1对象,点开,编号为0的那个就是最先被创建的炮台1实例),你通过升级变动了炮台的实例变量的伤害值并不是没有效果,而是这段事件没有选中对应的炮台实例,所以让你错觉它没有效果了。
    要修改的话,你可以给子弹加一个实例变量,当子弹被创建时,把这个变量的值设置为生成该子弹的炮台实例的uid,从而间接使子弹可以找到来源炮台,然后子弹跟怪物碰撞时,先按这个子弹的实例变量选中子弹的来源炮台,再去调用这个炮台的伤害变量,数据就准确了,也就是你升级对应炮台提升了伤害变量的值时,能正确产生“升级增加伤害”的效果了。

    关于上面提到的实例筛选的问题,你可以观察一下你这段截图的事件表,所有的条件部分,都没有炮台对象相关的条件,也就是说没有对炮台实例进行条件筛选,这种没筛选实例的情况,会默认选中所有的炮台实例,然后因为选中的是所有的炮台实例,你使用 炮台1.伤害 调用数据时,他只会在所有当前已选中的炮台中,挑一个最早生成的实例来作为数据引用的来源,上面提到的方法其实就是想了个方法使它可以选中对应的特定的实例,让数据引用的来源变得准确而已。



  • 谢谢大佬的详细回复,QQ图片20200521190728.png 还是没取炮塔1升级后的伤害。



  • @WTWEN2333 还是没取炮塔升级后的伤害。



  • @WTWEN2333塔防游戏,怎么实现炮塔升级后增加伤害。 中说:

    谢谢大佬的详细回复,QQ图片20200521190728.png 还是没取炮塔1升级后的伤害。

    34dfabe9-013b-4f06-b77f-70f24253f0b0-image.png 你选错成子弹了,要选炮台,而且这个选中的表达式也怪怪的🤔