C# 事件后将图像更改为gif

C# 事件后将图像更改为gif,c#,winforms,C#,Winforms,我已经创建了一个游戏,我试图获得敌人的图像,一旦他们被射杀,在他们消失之前变成爆炸gif,但我似乎无法让它工作,你可以看到下面的代码,它是要改变为gif,但当你支付游戏的敌人只是消失,没有gif显示 lasers.RemoveAll(laser => laser.isDisposed); foreach (Laser laser in lasers) { laser.MoveLaser(this);

我已经创建了一个游戏,我试图获得敌人的图像,一旦他们被射杀,在他们消失之前变成爆炸gif,但我似乎无法让它工作,你可以看到下面的代码,它是要改变为gif,但当你支付游戏的敌人只是消失,没有gif显示

 lasers.RemoveAll(laser => laser.isDisposed);
            foreach (Laser laser in lasers)
            {
                laser.MoveLaser(this);
                foreach (Invader ship in invaders)
                {
                    if (laser.laser.Bounds.IntersectsWith(ship.ship.Bounds))
                    {
                        laser.isDisposed = true;
                        laser.laser.Dispose();
                        ship.ship.Image = SpaceInvaders.Properties.Resources.explosionGIF1;
                        ship.isDisposed = true;
                        ship.ship.Dispose();
                        score = score + 2; //adds 2 points to players score if enemy is hit
                        lblScore.Text = score.ToString(); //updates the score label

正如@jimi所解释的那样


好的,您将图像设置为对象的属性,然后处理应该显示它的对象。顺便说一句,不要试图设置[object].isDisposed=true;,它是只读的。在需要的时候只需要一个物体的两倍。顺便说一句,您需要将Properties.Resources.[Some Image]分配给一个可重用的映像对象:现在您每次都要生成一个新映像

你在处理这艘船,用这张照片。
一个示例解决方案是创建一个新的GIF对象,该对象在播放一次后自行处理。当飞船被摧毁时,一个新的GIF对象将在飞船所在的位置创建。

好的,您可以将一个图像设置为一个对象的属性,然后处理应该显示它的对象。顺便说一句,不要试图设置[object].isDisposed=true;,它是只读的。只要在需要时处理一个对象。顺便说一句,你需要将Properties.Resources.[Some Image]分配给一个可重用的映像对象:现在你每次都在生成一个新映像。我不知道该怎么做?我是否需要创建一个gif类,然后在处理敌人后启用gif类?是的,为gif创建一个新类