Хорошо, у меня здесь странный вопрос. Я пытаюсь создать базовый движок плиток, используя форму Windows, но часть моего кода просто ... не происходит. Я выложу куски, о которых идет речь.
private void MapEditor_Load(object sender, EventArgs e)
{
LoadImageList();
FixScrollBarScales();
cboCodeValues.Items.Clear();
cboCodeValues.Items.Add("ENEMY");
cboCodeValues.Items.Add("CHEST");
cboCodeValues.Items.Add("NPC");
for (int x = 0; x < 100; x++)
cboMapNumber.Items.Add(x.ToString().PadLeft(3, '0'));
cboMapNumber.SelectedIndex = 0;
TileMap.EditorMode = true;
backgroundToolStripMenuItem.Checked = true;
}
Это следует вызывать при загрузке формы, верно? Код погружается в LoadImageList (), который содержит:
private void LoadImageList()
{
string filepath = Application.StartupPath +
@"\Content\Textures\IndoorTileSet.png";
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 = "Floor";
listTiles.Items.Add(new ListViewItem(itemName, tilecount++));
}
}
}
Растровое изображение загружается правильно, но тогда весь метод MapEditor_Load просто перестает работать. tileCount кажется локальной переменной в отладчике, и ее значение равно 0, но отладчик никогда не выполняет точку останова в строке, которой он назначен. Я понятия не имею, почему он это делает, и это сводит меня с ума. Любая помощь?
О, я поместил битовую карту в блок try / catch, чтобы посмотреть, обрабатывает ли он странным образом исключение, но мне не повезло. Это не исключение. У меня возникла эта проблема сразу после замены моего IndoorTileSet обновленной версией. Я попытался восстановить безуспешно.
Я читал что-то о человеке, имеющем похожую проблему, который столкнулся с необходимостью объявить что-то как экземпляр класса, но пост не был достаточно подробным, чтобы я знал, в этом ли я ошибаюсь, или что мне, возможно, придется объявить Экземпляром для его работы ... или что Экземпляр вообще означает, на самом деле.