我创建了一个游戏,我试图在敌人消失之前立即获得敌人的照片,但他们似乎消失了,但我似乎无法使其正常工作,您可以在下面的代码中找到它们它的意思是改为gif,但是当您支付游戏费用时,nemies就会消失而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
答案 0 :(得分:0)
@jimi解释
好吧,您将Image设置为对象的属性,然后处置应该显示它的对象。顺便说一句,不要尝试将[object] .isDisposed = true;设置为只读。仅在需要时丢弃对象。顺便说一句,您需要将Properties.Resources。[Some Image]分配给可重用的Image对象:现在,您每次都在生成一个新Image。
您正在处理飞船以及图像。
一个示例解决方案是创建一个新的GIF对象,该对象在播放一次后会自动释放。摧毁该船后,会在该船所在的位置创建一个新的GIF对象。