我正在創建一個2D射擊遊戲,並且我想在某個射彈對象與其發生碰撞時增加某些敵人的大小。 我可以通過僅改變下面如何在XNA + C#中動態縮放精靈的大小?
enemyAnimation.Initialize(enemyTexture, Vector2.Zero, 47, 61, 8, 30, Color.White, **2f**, true);
浮點值然後我可以浮球改變爲可變比例在代碼精靈,並且當碰撞發生時更新變量。唯一的問題是,敵人的規模確實發生了變化,但只是對於新產生的敵人以及所有敵人。這是顯而易見的,但我想做的事情(如果可能的話)是改變發生碰撞的敵人的大小,只有那個敵人...
任何關於我如何去做的想法這個?
編輯:
好吧,我有點困惑。我在我的Enemy類中創建了一個名爲scaleSize的浮點值。然後在我的Game1.cs碰撞檢測我運行一個循環,通過我的敵人的名單迭代對象
// Projectile vs Enemy Collision
for (int i = 0; i < projectiles.Count; i++)
{
for (int j = 0; j < enemies.Count; j++)
{
// Create the rectangles we need to determine if we collided with each other
// Determine if the two objects collided with each other
if (rectangle1.Intersects(rectangle2))
{
enemies[j].Health -= projectiles[i].Damage;
projectiles[i].Active = false;
*enemies[j].scaleSize += 1f;*
}
}
}
現在我意識到scaleSize沒有被正確初始化。但我不確定我應該在哪裏改變這一點。正如前面的代碼示例中所示,浮動值正在改變敵人的比例,但是通過動畫類,如果我改變它,它會改變所有敵人(afaik)。 我很抱歉,因爲我知道這非常含糊,但我無法將我的頭圍繞在我應該設置敵人縮放尺寸的位置。創造它的敵人級別是好的,但它並沒有參考敵人的實際規模。
你是如何跟蹤敵人的位置,你有一個類,你可以添加更多的字段或您使用一個枚舉的向量? – bendataclear
我有一個敵人類與這個信息。如果敵人離開屏幕或者與玩家或拋射物體發生碰撞,則會被殺死。敵人的位置也儲存在這裏。目前遵循Jon的建議併爲該課程增加規模價值。 – UserBruiser
您可能始終將您的比例初始化爲1,這將是一個非常安全的假設 – emartel