问题1:
System.NullReferenceException:“未将对象引用设置到对象的实例。”
bmp 是 null。
public Direction Dir { get {return dir; }
set {
dir = value;
Bitmap bmp = null;
switch (dir)
{
case Direction.Up:
bmp = BitmapUp;
break;
case Direction.Down:
bmp = BitmapDown;
break;
case Direction.Left:
bmp = BitmapLeft;
break;
case Direction.Right:
bmp = BitmapRight;
break;
}
Width = bmp.Width;
Height = bmp.Height;
} }
原因:BitmapUp的值为null,导致不能获取bmp.Width, bmp.Height
由于先赋值了this.Dir 返回public Direction Dir { get ; set;}中而此时BitmapUp还没赋值
public MyTank(int x, int y, int speed)
{
Ismove = false;
this.X = x;
this.Y = y;
this.speed = speed;
this.Dir = Direction.Up;
BitmapUp = Resources.MyTankUp;
BitmapDown = Resources.MyTankDown;
BitmapLeft = Resources.MyTankLeft;
BitmapRight = Resources.MyTankRight;
}
问题2
显示当前对象正在其他地方使用
原因:
按下多次方向键,多次触发导致争夺资源
解决:用lock锁
问题3:
子弹已被移除