2012-04-05 46 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 2012-04-05 14:20:45

+0

呀,这其实在这个枚举只代表了角色持有的武器种类 – 2012-04-05 14:50:52

回答

0

不同的方法可用于: 使默认精灵的副本,并绘制在它上面的剑(如果一个很好的方法,你就不需要更新精灵往往

或者你可以只呈现在精灵的顶部的剑你画人物精灵后:

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

我的确想过用不同的武器绘制不同的精灵,但是后来我会以每个角色5或6个额外的图像结束。 – 2012-04-05 14:53:38

+0

你只有一个额外的图像,你将使用它作为缓冲区来保存预先绘制的角色与其设备。为什么你需要5或6? – Grims 2012-04-05 15:02:25

相关问题