texture2d中出现NullReference异常
本文关键字:NullReference 异常 texture2d | 更新日期: 2023-09-27 18:29:40
我已经尝试在PlayerTank
类构造函数上加载纹理。但我收到了NullReferenceException
。
namespace BattleCityv1._5.Tanks
{
class PlayerTank : Tank
{
public PlayerTank(int life, Point position)
{
texture = Content.Load<Texture2D>(@"images/PlayerTankSpriteSheet");
Life = life;
Rectangle = new Rectangle(position.X, position.Y, 32, 32);
Source = new Rectangle(0, 0, Rectangle.Width, Rectangle.Height);
type = "player1";
Color = Color.White;
}
}
}
变量Content是ContentManager吗?这些变量是否已声明?你的类"坦克"没有扩展Microsoft.Xna.Framework.Game,是吗?
内容可能为空。但内容只应该在扩展Microsoft.Xna.Framework.Game的类中(维奇可能会命名为BattleCityv1或其他什么)
我建议从扩展Microsoft.Xna.Framework.Game的类中获取纹理。制作一个静态字典,加载所有纹理一次,然后通过访问该字典来获取这些纹理。这可能是最简单的解决方案。
纹理对象从未真正创建过。
texture = ContentManager.Load<Texture2D>(@"images/PlayerTankSpriteSheet");
是您键入的内容。但是Content.Load<>具有参数(字符串assetName)。
@"images/PlayerTankSpriteSheet"
是而不是资产名称。它是一个文件路径。您需要单击解决方案资源管理器中"内容"下的精灵,然后找到资产名称。这是您作为ContentManager的参数键入的内容。加载<>