最初にいくつかの背景。私はC#プログラミングの新しいもので、いくつかのチュートリアルの後にゲームを作成することでそれを学習しています。私はVS2015 Community on Win8.1を実行しています。私はもともとはXNAで動作するように書かれたゲーム開発チュートリアルに従っています。私はWindowsフォームを使用してレベルエディタを作成しています。これまでのところ、レベルエディタのフォームは問題なく表示されるので、コードは機能しています。私が問題を抱えている次のステップは、スプライトシートをエディタに読み込んでレベルを作成/変更できるようにすることです。ここで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ファイルであり、プロジェクトのためのコンテンツフォルダにあります。ファイルはMonogameのコンテンツマネージャを使用して読み込まれました。プロジェクトをビルドすると、「ファイルパス」変数がBitmapに割り当てられている行でデバッグが停止します。私は、次のスクリーンショットに示すエラーメッセージが表示されます。
私はグーグル、MSDN、Monogame、および同様のサイトを使用して可能性と同じくらいを研究しています。プログラマーがメッセージを受け取る他の同様の例がありますが、彼らは私のようなことに取り組んでいません。だから私は問題を解決するために私ができることについて助言を得るために投稿しています。ご不明な点がございましたら、お知らせください。ありがとうございました。
を渡しているときにも拡張子を与える必要があります。プログラムにアセットをロードすると、Content Managerはアセットファイルを管理するための内部拡張を割り当てます。 XNAがファイルをxnbに変換したのと同様です。私はMonogameとVSを使用して4つまたは5つのゲームプログラムを書いており、拡張機能を離れる問題はありませんでした。しかし今、あなたはそれを言いました、問題は私が以前にいなかったところでBitmapを使っているのだろうか? Bitmapは文字列を読み込むために拡張機能を必要としますか?私はそれを試して、それが違いを生むかどうかを見てみましょう。ありがとう! – Devbyskc