“Game.exe中发生了'System.TypeInitializationException'类型的未处理异常”是我尝试运行程序时收到的错误。它说它构建为0错误,但它不会启动,当我在调试中运行它时,我得到的消息。
我认为这是关于这个课程的事情:
class Sprites
{
private static Bitmap sheet;
private const int TILE_SIZE = 32;
public static Bitmap loadSprite(string file)
{
Bitmap sprite;
sprite = new Bitmap("Content/Sprites/" + file);
return sprite;
}
public static Bitmap getSprite(int x, int y)
{
if (sheet == null)
sheet = loadSprite("char.png");
Rectangle crop = new Rectangle(x * TILE_SIZE, y * TILE_SIZE, TILE_SIZE, TILE_SIZE);
System.Drawing.Imaging.PixelFormat format = sheet.PixelFormat;
return sheet.Clone(crop, format);
}
}
似乎是在调用其中的方法的时候,因为当我在这个类中没有调用任何东西的情况下运行时它就可以了。我的主要形式中没有别的东西,因为我刚刚开始这样做。
现在我尝试使用一个没有任何好处的位图文件。它在program.cs“Application.Run(new Form1());”中的初始化行上出错。它并没有告诉我更多。我发布了我的课程,因为它在我不使用时运行。
在form1.cs里面
static Bitmap[] walkForward = { Sprites.getSprite(2, 0), Sprites.getSprite(2, 1), Sprites.getSprite(2, 2) };
Animation walking = new Animation(walkForward, 10);
public Form1()
{
InitializeComponent();
}
完整错误输出到文本文件:
System.TypeInitializationException:'Game.Form1'的类型初始值设定项引发了异常。 ---> System.ArgumentException:参数无效。 在System.Drawing.Bitmap..ctor(String filename) 在Game.Sprites.loadSprite(String file)中的c:\ Users \ tiern \ Documents \ Visual Studio 2013 \ Projects \ MoveSpites \ Game \ Sprites.cs:第19行 在Game.Sprites.getSprite(Int32 x,Int32 y)中的c:\ Users \ tiern \ Documents \ Visual Studio 2013 \ Projects \ MoveSpites \ Game \ Sprites.cs:第27行 在Game.Form1..cctor()中的c:\ Users \ tiern \ Documents \ Visual Studio 2013 \ Projects \ MoveSpites \ Game \ Form1.cs:第15行 ---内部异常堆栈跟踪结束--- 在Game.Form1..ctor() 在Game.Program.Main()中的c:\ Users \ tiern \ Documents \ Visual Studio 2013 \ Projects \ MoveSpites \ Game \ Program.cs:第21行
System.ArgumentException:参数无效。 在System.Drawing.Bitmap..ctor(String filename) 在Game.Sprites.loadSprite(String file)中的c:\ Users \ tiern \ Documents \ Visual Studio 2013 \ Projects \ MoveSpites \ Game \ Sprites.cs:第19行 在Game.Sprites.getSprite(Int32 x,Int32 y)中的c:\ Users \ tiern \ Documents \ Visual Studio 2013 \ Projects \ MoveSpites \ Game \ Sprites.cs:第27行 在Game.Form1..cctor()中的c:\ Users \ tiern \ Documents \ Visual Studio 2013 \ Projects \ MoveSpites \ Game \ Form1.cs:第15行
答案 0 :(得分:0)
原来它无法在磁盘上找到该文件。它从bin文件夹而不是项目的根目录中读取。