【完結】エネミーにステートを複数表示する方法
Posted: 2020年2月26日(水) 06:30
今回は表題の通り、エネミーにステートを複数表示する方法について質問させてください。
まず、ステートの表示位置について変更を加えようと思ったのがきっかけです。
ステートの位置については、rpg_sprites.jsにある
ここで xと yの値を変化させることで位置が変わると思いました。
とした事で、位置を変更する事に成功した(※アイコン位置1.jpg参照)のですが、皆様ご存じの通り、
エネミーはステートアイコンの表示数が1つに限られており、2つ以上のステートを表示する際はアイコンが切り替わることで対応しています。
これを、複数並べて表示(※アイコン位置2.jpg参照)するにはどこを改変すればいいのか、朝まで考えて分かったのは
ここでステートの数によってアニメーション(アイコンの切り替え表示)をするかしないかを判断しているということだけでした。
実際、this._animationIndexの値を増やせば、複数のステートが付加されても切り替わらなくなったのですが、ただ切り替わらなくなっただけで、表示される数は相変わらず一つでした。
私の脳みそではここが限界のようです。
エネミーのステートアイコンが複数の場合は並べて表示されるようにするには、あと何が足りないのでしょうか?
ご教授いただければ幸いです。
ちなみに、以前の記事でトリアコンタンさんがプラグインを提供されていたので、これを使わせていただこうとは思っていますが、
後学のためにも構造を知っておきたいので、ぜひともよろしくお願いします。
viewtopic.php?t=3226
まず、ステートの表示位置について変更を加えようと思ったのがきっかけです。
ステートの位置については、rpg_sprites.jsにある
コード: 全て選択
Sprite_Enemy.prototype.updateStateSprite = function() {
this._stateIconSprite.y = -Math.round((this.bitmap.height + 40) * 0.9);
if (this._stateIconSprite.y < 20 - this.y) {
this._stateIconSprite.y = 20 - this.y;
}
};
コード: 全て選択
Sprite_Enemy.prototype.updateStateSprite = function() {
this._stateIconSprite.x = 32;
this._stateIconSprite.y = 0;
}
};
エネミーはステートアイコンの表示数が1つに限られており、2つ以上のステートを表示する際はアイコンが切り替わることで対応しています。
これを、複数並べて表示(※アイコン位置2.jpg参照)するにはどこを改変すればいいのか、朝まで考えて分かったのは
コード: 全て選択
Sprite_StateIcon.prototype.updateIcon = function() {
var icons = [];
if (this._battler && this._battler.isAlive()) {
icons = this._battler.allIcons();
}
if (icons.length > 0) {
this._animationIndex ++;
if (this._animationIndex >= icons.length) {
this._animationIndex = 0;
}
this._iconIndex = icons[this._animationIndex];
} else {
this._animationIndex = 0;
this._iconIndex = 0;
}
};
実際、this._animationIndexの値を増やせば、複数のステートが付加されても切り替わらなくなったのですが、ただ切り替わらなくなっただけで、表示される数は相変わらず一つでした。
私の脳みそではここが限界のようです。
エネミーのステートアイコンが複数の場合は並べて表示されるようにするには、あと何が足りないのでしょうか?
ご教授いただければ幸いです。
ちなみに、以前の記事でトリアコンタンさんがプラグインを提供されていたので、これを使わせていただこうとは思っていますが、
後学のためにも構造を知っておきたいので、ぜひともよろしくお願いします。
viewtopic.php?t=3226