изменение изображения на GIF после события - PullRequest
0 голосов
/ 17 мая 2019

Я создал игру, и я пытаюсь получить изображение врагов после того, как они были убиты, чтобы подменить изображение взрыва, прежде чем они исчезнут, но я не могу заставить его работать, вы можете увидеть код ниже, гдеоно должно измениться на 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

1 Ответ

0 голосов
/ 17 мая 2019

Как объяснил @jimi

Что ж, вы устанавливаете Image на свойство объекта, а затем избавляетесь от объекта, который должен его показывать.Кстати, не пытайтесь установить [object] .isDisposed = true; это только для чтения.Просто дипозируйте объект, когда это необходимо.Кстати, вам нужно назначить Properties.Resources. [Some Image] многократно используемому объекту Image: сейчас вы каждый раз генерируете новое изображение.

Вы утилизируете корабль и с этимthe image.
Примером решения может быть создание нового объекта GIF, который самостоятельно удаляется после однократного воспроизведения.Когда корабль уничтожен, новый объект GIF создается в том же месте, где был корабль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...