時間の経過とともにフェードする移動オブジェクトにいくつかのトレイルエフェクトを追加します。 これは私がこれまで持っているものである。ここで(WASDまたは矢印キーで移動します)melonJSで時間の経過とともにスプライトの色を変更する方法
game.Trail = me.Entity.extend({
init:function (x, y, settings)
{
this._super(me.Entity, 'init', [
x, y,
{
image: "ball",
width: 32,
height: 32
}
]);
(new me.Tween(this.renderable))
.to({
alpha : 0,
}, 5000)
.onComplete((function() {
me.game.world.removeChild(this);
}).bind(this))
.start();
},
update : function (dt) {
this.body.update(dt);
return (this._super(me.Entity, 'update', [dt]) || this.body.vel.x !== 0 || this.body.vel.y !== 0);
}
});
ローカルでテストすることa link to the full projectです。
しかし、フェイディングと同じ方法でトレイル内のアイテムの色を変更したいと思います。
フェイザーでこれを行うことができました染め私はmelonjsでそれを達成する方法についての手がかりがありません。
注:エフェクトは、画像の代わりに基本的な形で行うこともできます。
これは完全に機能します。しかし、なぜthis._super ...への呼び出しが必要ですか?私はそれがその行なしで動作すると思う(あなたの編集された応答の私のリンクをチェックする)。 – chipairon
@chipairon技術的には、サブクラス内の「描画」メソッドの存在は、(古典継承の観点から)スーパークラスのメソッドを完全にオーバーライドします。 'me.Entity'クラスの' draw'メソッドはすべての描画作業を行います。このスーパークラスメソッドを忘れると、あなたのエンティティは描画されません。ここには、melonJSの古典的な継承のドキュメントがあります:http://melonjs.github.io/melonJS/docs/me.Object.htmlとそれがベースになっているライブラリ:https://github.com/parasyte/jay-extend #this_super –
また、[jsfiddle demo](https://jsfiddle.net/ruben_diaz/33pca05u/)のエンティティにはスプライトがありません。スーパークラスの 'draw'メソッドはこの特定のケースでは何もしません。 –