我试图在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;
}
}
}
答案 0 :(得分:0)
变量Content是ContentManager吗?这些变量甚至被宣布?你的班级&#34;坦克&#34;没有扩展Microsoft.Xna.Framework.Game,是吗?
内容可能为空。但内容只应该在你的类中扩展Microsoft.Xna.Framework.Game(可能会命名为BattleCityv1或其他东西)
我的建议是从您的课程中获取扩展Microsoft.Xna.Framework.Game的纹理。创建一个静态字典,加载所有纹理一次,并通过访问该字典获取这些纹理。它可能是最简单的解决方案。
答案 1 :(得分:0)
从未真正创建纹理对象。
texture = ContentManager.Load<Texture2D>(@"images/PlayerTankSpriteSheet");
是您输入的内容。但是Content.Load&lt;&gt;有参数(字符串assetName)。
@"images/PlayerTankSpriteSheet"
不资产名称。这是一个文件路径。您需要在内容下的解决方案资源管理器中单击精灵,然后找到资产名称。这是您输入的内容,作为ContentManager.Load&lt;&gt;
的参数