我正在为游戏制作关卡编辑器,你是标准的平台游戏。默认情况下,级别大小为 24_Height 和 32_Width 乘以 32 的图块大小。因此默认情况下,面板容器大小为 1024 x 768。
您可以使用重新调整面板大小的窗口形式更改行和列。这是我遇到问题的地方。默认大小看起来不错,但是当增加它的大小时,面板本身并没有锁定到当前大小,而是分别在宽度和高度上扩展。
我想要的是它被锁定在默认大小,并且当面板变得比默认值大时,滚动条出现在适当的位置。
出于这个原因,我查看了事件选项卡中的自动滚动选项,但将其设置为 true 似乎并没有什么不同(因为即使面板离开表单也不会出现)。我查看了更改最大大小值(当前为 32000、32000),认为我仍然可以通过代码重新调整它的大小,但不能以相同的方式以相同的方式显示它。它没有用。
如果有必要,绘制代码,尽管考虑到我刚刚开始这个项目,它非常空。
private void MapPanel_Paint(object sender, PaintEventArgs e)
{
if (MapPanel.Width < (oMapGrid.TileColsValue * oMapGrid.TileSizeValue))
MapPanel.Width = (oMapGrid.TileColsValue * oMapGrid.TileSizeValue);
if (MapPanel.Height < (oMapGrid.TileRowsValue * oMapGrid.TileSizeValue))
{
MapPanel.Height = (oMapGrid.TileRowsValue * oMapGrid.TileSizeValue);
MapPanel.AutoScroll = true;
}
for (int Row = 0; Row < oMapGrid.TileRowsValue; Row++ )
{
oPen_and_Brush.ClassGraphics.DrawLine(oPen_and_Brush.ClassPen, 0, Row * oMapGrid.TileSizeValue, MapPanel.Width, Row * oMapGrid.TileSizeValue);
}
for (int Col = 0; Col < oMapGrid.TileColsValue; Col++)
{
oPen_and_Brush.ClassGraphics.DrawLine(oPen_and_Brush.ClassPen, Col * oMapGrid.TileSizeValue, 0, Col * oMapGrid.TileSizeValue, MapPanel.Height);
}
}