2012-04-05 13 views
0

Javaでは、ImageViewを拡張して文字を作成する次のクラスを作成しました。文字が保持しているアイテムの別のイメージを追加することができるかどうかを知りたいです(メソッド "addWeapon()"を参照)。私のキャラクターが動いたときに移動します(方法 "warriorMover(..)"を参照)。基本的には、「武器イメージ」を主人公の「特徴/部分」にすることが可能かどうか疑問に思っていましたか?イメージを別のイメージの特性として追加するにはどうすればよいですか?

public class WarriorEntity extends ImageView 
{ 
private kingsColor kingColor; 
private weapons weaponId; 

private int kingSide; 
private int warriorId; 
private int nLeft; 
private int nTop; 

public WarriorEntity(Context context) 
{ 
    super(context); 
} 

public void defineWarrior(kingsColor a1, weapons a2, int a3, int a4, int a5, int a6) 
{ 
    kingColor = a1; 
    weaponId = a2; 
    kingSide = a3; 
    warriorId = a4; 
    nLeft = a5; 
    nTop = a6; 

    switch (kingColor) 
    { 
    case blue: 
     this.setImageResource(R.drawable.bluewarrior); 
     break; 
    case green: 
     this.setImageResource(R.drawable.greenwarrior); 
     break; 
    case purple: 
     this.setImageResource(R.drawable.purplewarrior); 
     break; 
    case red: 
     this.setImageResource(R.drawable.redwarrior); 
     break; 
    case white: 
     this.setImageResource(R.drawable.whitewarrior); 
     break; 
    case yellow: 
     this.setImageResource(R.drawable.yellowwarrior); 
     break; 
    } 
    this.setId(warriorId); 
    this.setOnClickListener(WarriorClick); 
    setImagexy(this, nLeft, nTop, 20, 30); 
} 

public void addWeapon() 
{ 
    switch (weaponId) 
    { 
    case bowandarrow : 
     break; 
    case mace : 
     break; 
    case spear : 
     break; 
    case sword : 
     // - Here I would want some code to add the weapon image which as if it were part 
       of the same image as the character... moves/reacts with the character. 
     break; 
    } 
} 

public void warriorMover(int leftX, int topY) 
{ 
    setImagexy(this, leftX + 8, topY - 3, 20, 30); 
} 

「setImagexy」は、画像を画面上の指定された場所に移動するカスタムメソッドです。あなたは可能性があり

あまりにも頻繁にあなたがスプライトを更新する必要はありません場合は良いアプローチ( デフォルトのスプライトのコピーを作成し、その上に剣を描画するか:

+0

なぜ代わりにのみ列挙型を使用する武器クラスを追加し、それは同様にImageViewのを拡張していない – bvulaj

+0

ええ、それは実際には?その列挙は、キャラクターがどのような種類の武器を持っているかを表しています。 –

答えて

0

異なるアプローチを使用することができますあなたは、文字スプライトを描画した後だけスプライトの上に剣を描画:

render_loop() 
_>draw_characterSprite() 
__>draw_equipment() 
+0

私は異なる武器で異なるスプライトを描くことを考えましたが、キャラクターごとに5〜6枚の余分な画像が残ってしまいます。 –

+0

あなたは、予備描画されたキャラクタをその機器で保存するためにバッファとして使用する余分なイメージを1つしか持たないでしょう。なぜあなたは5または6が必要でしょうか? – Grims

関連する問題