味噌原
ユーザー
特定のステート異常の際に敵キャラが上下反転するプラグインを作成しています。
敵キャラをそのまま上下に反転させると足元を軸にして反転してしまい、見た目が悪いため、
敵キャラが上下反転している間は敵キャラのy座標を上にずらすことにしました。
ですが、それにつられて、アニメーションが不自然に高い位置に表示されてしまいます。
(左のこうもりの敵です)
アニメーションを同じ分だけ下へ座標をずらす処理を加えたいので、
上記のコードの下にこのようなコードを追加しました。
敵キャラのステート異常が特定のIDのときだけアニメーションの座標を下へずらすようにしたかったのですが、
上記のコードで戦闘を実行したところ、画像のようなエラーが出てしまいました。
おそらくは、//敵のステートが転倒、墜落のとき~以下のコードが間違っているのだと思います。
敵のステート異常に応じてアニメーションの座標を変更するには、どうすればよいのでしょうか?
敵キャラをそのまま上下に反転させると足元を軸にして反転してしまい、見た目が悪いため、
敵キャラが上下反転している間は敵キャラのy座標を上にずらすことにしました。
コード:
Sprite_Enemy.prototype.update = function() {
Sprite_Battler.prototype.update.call(this);
if (this._enemy) {
this.updateEffect();
this.updateStateSprite();
if (this._enemy._states[0] == 19 | this._enemy._states[0] == 21) {
this.y-=this.bitmap.height;
this.scale.x = 1;
this.scale.y = -1;
} else {
this.scale.x = 1;
this.scale.y = 1;
}
}
ですが、それにつられて、アニメーションが不自然に高い位置に表示されてしまいます。
(左のこうもりの敵です)

アニメーションを同じ分だけ下へ座標をずらす処理を加えたいので、
上記のコードの下にこのようなコードを追加しました。
コード:
Sprite_Animation.prototype.updatePosition = function () {
if (this._animation.position === 3) {
this.x = this.parent.width / 2;
this.y = this.parent.height / 2;
} else {
var parent = this._target.parent;
var grandparent = parent ? parent.parent : null;
this.x = this._target.x;
this.y = this._target.y;
if (this.parent === grandparent) {
this.x += parent.x;
this.y += parent.y;
}
if (this._animation.position === 0) {
this.y -= this._target.height;
} else if (this._animation.position === 1) {
this.y -= this._target.height / 2;
}
//敵のステートが転倒、墜落のとき
if(this._target._states[0] == 21){
this.y += this._target.height;
this.y += 50;
}
if(this._target._states[0] == 19){
this.y += this._target.height;
}
}
};
敵キャラのステート異常が特定のIDのときだけアニメーションの座標を下へずらすようにしたかったのですが、
上記のコードで戦闘を実行したところ、画像のようなエラーが出てしまいました。

おそらくは、//敵のステートが転倒、墜落のとき~以下のコードが間違っているのだと思います。
敵のステート異常に応じてアニメーションの座標を変更するには、どうすればよいのでしょうか?