0

シンプルな HTML5 2D キャンバス ゲームの作成にKineticJS Spriteオブジェクトを使用しています。各スプライトには、「盾」、「火力」、「速度」などの特定の特性が必要です。そのため、Sprite オブジェクトに独自のカスタム プロパティを追加する必要があります。

理想的には、次のようなものが必要です。

mySpriteObj.setCustom('shield',50) // set a custom property to 50

...そしてその後..

var shield = mySpriteObj.getCustom('shield') // returns 50

しかし、そのようなものはないようです。独自のカスタム値でattr プロパティ (getAttrおよびsetAttr) を使用しようとしましたが、これは機能しませんでした。

独自の変数を Sprite オブジェクトに関連付ける簡単な方法はありますか?

ありがとうオーウェン

4

2 に答える 2

1

getAttr()とがsetAttr()最適な方法ですが、ノードを使用してキャンバスを保存してから再作成しようとしない限り、次.toJSON()のようにカスタム値を直接割り当てることができます。

mySpriteObj.shield = someValue;
mySpriteObj.speed = someOtherValue;
var myObjSpeed = mySpriteObj.speed;
var myObjShield = mySpriteObj.shield;

getAttr()ただし、 andを使用してコードを共有しsetAttr()、そのエラーを修正することをお勧めします。

于 2013-09-09T09:04:00.400 に答える
0

メソッドを追加するには、関数をKinetic.Shape使用できますドキュメントを参照してくださいaddMethods

この方法の使用方法の例については、 Kinetic Sourceを確認してください。

例:

Kinetic.Util.addMethods(Kinetic.Shape, {
  getCustom: function() {
    //getCustom attribute code here
  },
  getCustom2: function() {
    //getCustom attribute code here
  }
});

関数の 2 番目のパラメーターのオブジェクトにプロパティ (関数) を追加することで、複数の関数を追加できることに注意してくださいaddMethod

Ani が言うように、関数getAttr()setAttr()関数を使用してカスタム属性を取得および設定する必要があります。

于 2013-09-09T15:17:59.047 に答える