我正在创建一个 2D 射击游戏,当某些敌人与射弹物体发生碰撞时,我想增加它的大小。我可以通过更改下面的浮点值来缩放代码中的精灵
enemyAnimation.Initialize(enemyTexture, Vector2.Zero, 47, 61, 8, 30, Color.White, **2f**, true);
然后我可以将该浮点数更改为一个变量,并在发生碰撞时更新该变量。唯一的问题是,敌人规模确实会改变,但仅限于新生成的敌人和所有敌人。这很明显,但我想做的(如果可能的话)是改变发生碰撞的敌人的大小,只有那个敌人......
关于我如何去做这件事的任何想法?
编辑:
好吧,我有点困惑。我在 Enemy 类中创建了一个名为 scaleSize 的浮点值。然后在我的 Game1.cs 中的碰撞检测中,我正在运行一个 for 循环来遍历我的敌人对象列表
// 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 没有被正确初始化。但我不确定我应该在哪里改变它。与前面的代码示例一样,float 值正在改变敌人的比例,但通过 Animation 类,如果我改变它,它会改变所有敌人(afaik)。我很抱歉,因为我知道这很模糊,但我无法将头绕在我应该设置敌人比例大小的地方。创建它的敌人类很好,但它没有参考敌人的实际规模。