Project1

标题: 如何从通过一个Enemy对象获取其对应的战斗图sprite? [打印本页]

作者: andrewx    时间: 2016-3-15 22:36
标题: 如何从通过一个Enemy对象获取其对应的战斗图sprite?
晚上写代码突然脑子不够用了...谁来给个提示
作者: trentswd    时间: 2016-3-16 00:47
这块没看过,但是从Character到行走图的sprite之间完全没有联系,所以我猜这个也一样……
作者: taroxd    时间: 2016-3-16 06:48
你的“获取”是什么意思?

如果是指新建一个 Sprite 的话,可以用 enemy.battlerName(), enemy.battlerHue() 获取相关属性,然后新建一个

如果是指拿到一个已经生成的 Sprite 的话……基本上说明你写脚本的思路有问题。Enemy 这东西负责的是数据逻辑,Sprite 负责的是显示,不应该有从 Enemy 获取 Sprite 的想法。
默认脚本也没有提供获取 Sprite_Enemy 所对应 enemy 的公开方法。
如果实在要获取的话:
JAVASCRIPT 代码复制
  1. // with (an instance of Spriteset_Battle) {
  2.     this._enemySprites.find(function (s) {
  3.         return s._enemy === yourEnemy;
  4.     });
  5. // }

作者: andrewx    时间: 2016-3-16 18:15
taroxd 发表于 2016-3-16 06:48
你的“获取”是什么意思?

如果是指新建一个 Sprite 的话,可以用 enemy.battlerName(), enemy.battlerHue ...

感谢前辈,可是使用find()方法会报undefined is not a function,是不是这个版本没这个方法?
我现在是用遍历来找对应的sprite了。

我也觉得从enemy找sprite很别扭,但是目前写的东西是想在播放战斗动画的时候根据敌人的sprite高度计算一个偏移量,showNormalAnimation()只能传出target对象,所以我写的方法只能传入target了ORZ
作者: trentswd    时间: 2016-3-16 18:52
fuki对话框也有这个问题,对话框本身不在spriteset里面,但是对话框的偏移要用到行走图的高度。
之前有思路是在spriteset里面成功加载到bitmap的时候把高度写回去,不过趴在地上想想好麻烦还是算了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1