位图函数给出参数无效错误

时间:2016-04-15 12:59:51

标签: c# bitmap monogame

首先是一些背景。我是一个相对较新的C#编程,并通过几个教程创建游戏来学习它。我在Win8.1上运行VS2015社区。我正在关注最初编写为在XNA下运行的游戏开发教程。我正处于使用Windows Forms创建关卡编辑器的地步。到目前为止,代码正在工作,因为级别编辑器表单显示没有问题。我遇到问题的下一步是将spritesheet加载到编辑器中,以便创建/修改级别。以下是加载spritesheet的方法:

private void LoadImageList()
    {
        string filepath = Application.StartupPath +
           @"\Content\PlatformTiles";
       Bitmap tileSheet = new Bitmap(filepath);
        int tilecount = 0;
        for (int y = 0; y < tileSheet.Height / TileMap.TileHeight; y++)
        {
            for (int x = 0; x < tileSheet.Width / TileMap.TileWidth; x++)
            {
                Bitmap newBitmap = tileSheet.Clone(new
                    System.Drawing.Rectangle(
                        x * TileMap.TileWidth,
                        y * TileMap.TileHeight,
                        TileMap.TileWidth,
                        TileMap.TileHeight),
                        System.Drawing.Imaging.PixelFormat.DontCare);

                imgListTiles.Images.Add(newBitmap);
                string itemName = "";
                if (tilecount == 0)
                {
                    itemName = "Empty";
                }
                if (tilecount == 1)
                {
                    itemName = "White";
                }
                listTiles.Items.Add(new
                    ListViewItem(itemName, tilecount++));
            }
        }
    }

    private void MapEditor_Load(object sender, EventArgs e)
    {
        LoadImageList();
    }

    private void exitToolStripMenuItem_Click(object sender, EventArgs e)
    {
        game.Exit();
        Application.Exit();
    }
  }
}

spritesheet是一个名为PlatformTiles的.png文件,位于项目的Content文件夹中。该文件是使用Monogame的内容管理器加载的。当我构建项目时,Debug停在&#34; filepath&#34;的行。变量被分配给Bitmap。我收到以下屏幕截图中显示的错误消息:

enter image description here

我已尽可能多地研究Google,MSDN,Monogame和类似网站。虽然程序员有其他类似的实例收到消息,但他们并没有像我一样处理事情。所以我发帖是为了获得有关我可以采取哪些措施来解决问题的建议。如果有任何问题,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:1)

当你传递文件名

时,你也需要提供扩展名
string filepath = Application.StartupPath +
           @"\Content\PlatformTiles.png";