📄 checkclass.cs
字号:
{
MainEntry.theForm.Map[i,j].imageIndex = MainEntry.theForm.RecoverMapInfo[i,j].imageIndex;
MainEntry.theForm.Map[i,j].fileIndex = 0;
}*/
/*if(MainEntry.theForm.RecoverMapInfo[i,j].imageIndex != 5)
{
MainEntry.theForm.Map[i,j].imageIndex = MainEntry.theForm.RecoverMapInfo[i,j].imageIndex;
MainEntry.theForm.Map[i,j].fileIndex = 0;
}*/
}
}
for(int i = 0;i < 64;i++)
{
for(int j = 0;j < 48;j++)
{
if(MainEntry.theForm.Map[i,j].fileIndex == 0)
{
int ii = i;
int jj = j;
int k = 0;
int t = 0;
bool canBuild = false;
if(MainEntry.theForm.Map[i,j].imageIndex >= 22 && MainEntry.theForm.Map[i,j].imageIndex <= 30)
{
canBuild = CheckClass.CheckForDrawing(ref ii,ref jj,MainEntry.theForm.Map[i,j].imageIndex,ref k,ref t);
}
if(canBuild)
{
if(MainEntry.theForm.Map[i,j].imageIndex == 30)
{
//this.g.DrawImage(this.imageListSmall.Images[10],ii * 32 + scrollOffset.Width,jj * 32 + scrollOffset.Height);
if(MainEntry.theForm.Map[ii,jj].fileIndex == 0
&& (MainEntry.theForm.Map[ii,jj].imageIndex == 20
|| MainEntry.theForm.Map[ii,jj].imageIndex == 21))
{
MainEntry.theForm.RecoverMapInfo[ii,jj].fileIndex = 0;
MainEntry.theForm.RecoverMapInfo[ii,jj].imageIndex = MainEntry.theForm.Map[ii,jj].imageIndex;
}
MainEntry.theForm.Map[ii,jj].imageIndex = 10;
MainEntry.theForm.Map[ii,jj].fileIndex = 0;
}
else
{
for(int xx = 0;xx < 3;xx++)
{
for(int yy = 0;yy < 3;yy++)
{
if(MainEntry.theForm.Map[ii + xx,jj + yy].fileIndex == 0
&& (MainEntry.theForm.Map[ii + xx,jj + yy].imageIndex == 20
|| MainEntry.theForm.Map[ii + xx,jj + yy].imageIndex == 21))
{
MainEntry.theForm.RecoverMapInfo[ii + xx,jj + yy].fileIndex = 0;
MainEntry.theForm.RecoverMapInfo[ii + xx,jj + yy].imageIndex = MainEntry.theForm.Map[ii + xx,jj + yy].imageIndex;
}
MainEntry.theForm.Map[ii + xx,jj + yy].imageIndex = FormMain.TakeUP;
MainEntry.theForm.Map[ii + xx,jj + yy].fileIndex = 0;
}
}
//this.g.DrawImage(this.imageListBig.Images[DragSource.thisControl.ImageIndex - 21],ii * 32 + scrollOffset.Width,jj * 32 + scrollOffset.Height);
MainEntry.theForm.Map[ii,jj].imageIndex = MainEntry.theForm.Map[i,j].imageIndex - 21;
MainEntry.theForm.Map[ii,jj].fileIndex = 1;
if(MainEntry.theForm.Map[i,j].imageIndex != 22
&& MainEntry.theForm.Map[i,j].imageIndex != 23)
{
MainEntry.theForm.Map[k,t].imageIndex = FormMain.ShowNumber;
MainEntry.theForm.Map[k,t].fileIndex = 0;
}
}
/*else
{
for???(int xx = 0;xx < 3;xx++)
{
for(int yy = 0;yy < 3;yy++)
{
MainEntry.theForm.Map[ii + xx,jj + yy].imageIndex = FormMain.TakeUP;
MainEntry.theForm.Map[ii + xx,jj + yy].fileIndex = 0;
}
}
//this.g.DrawImage(this.imageListBig.Images[DragSource.thisControl.ImageIndex - 21],ii * 32 + scrollOffset.Width,jj * 32 + scrollOffset.Height);
MainEntry.theForm.Map[ii,jj].imageIndex = MainEntry.theForm.Map[i,j].imageIndex - 21;
MainEntry.theForm.Map[ii,jj].fileIndex = 1;
//MainEntry.theForm.Map[k,t].imageIndex = FormMain.ShowNumber;
//MainEntry.theForm.Map[k,t].fileIndex = 0;
}*/
}
}
else if(MainEntry.theForm.Map[i,j].fileIndex == 1)
{
for(int xx = 0;xx < 3;xx++)
{
for(int yy = 0;yy < 3;yy++)
{
if(xx == 0 && yy == 0)
{
continue;
}
if(MainEntry.theForm.Map[i + xx,j + yy].fileIndex == 0
&& MainEntry.theForm.Map[i + xx,j + yy].imageIndex == FormMain.ShowNumber)
{
continue;
}
MainEntry.theForm.Map[i + xx,j + yy].fileIndex = 0;
MainEntry.theForm.Map[i + xx,j + yy].imageIndex = FormMain.TakeUP;
}
}
}
}
}
}
/// <summary>
/// 清除原来的地图信息(有建筑的)
/// </summary>
/// <param name="i">坐标i</param>
/// <param name="j">坐标j</param>
/// <param name="index">图片的ID</param>
/// <returns>清除成功返回true,否则返回false</returns>
public static bool CheckBeforeDawing(ref int i,ref int j,int index)
{
if(index == 30)
{
//左
if(i - 1 >= 0)
{
if(MainEntry.theForm.Map[i - 1,j].imageIndex == 10
&& MainEntry.theForm.Map[i - 1,j].fileIndex == 0)
{
i = i - 1;
return true;
}
}
//右
if(i + 1 <= 63)
{
if(MainEntry.theForm.Map[i + 1,j].imageIndex == 10
&& MainEntry.theForm.Map[i + 1,j].fileIndex == 0)
{
i = i + 1;
return true;
}
}
//上
if(j - 1 >= 0)
{
if(MainEntry.theForm.Map[i,j - 1].imageIndex == 10
&& MainEntry.theForm.Map[i,j - 1].fileIndex == 0)
{
j = j - 1;
return true;
}
}
//下
if(j + 1 <= 47)
{
if(MainEntry.theForm.Map[i,j + 1].imageIndex == 10
&& MainEntry.theForm.Map[i,j + 1].fileIndex == 0)
{
j = j + 1;
return true;
}
}
return false;
}
//左
if(i - 3 >= 0 && j - 1 >= 0 && j + 1 <= 47)
{
if(MainEntry.theForm.Map[i - 3,j - 1].imageIndex == index - 21)
{
i = i - 3;
j = j - 1;
return true;
}
}
//右
if(i + 3 <= 63 && j - 1 >= 0 && j + 1 <= 47)
{
if(MainEntry.theForm.Map[i + 1,j - 1].imageIndex == index - 21)
{
i = i + 1;
j = j - 1;
return true;
}
}
//上
if(i - 1 >= 0 && i + 1 <= 63 && j - 3 >= 0)
{
if(MainEntry.theForm.Map[i - 1,j - 3].imageIndex == index - 21)
{
i = i - 1;
j = j - 3;
return true;
}
}
//下
if(i - 1 >= 0 && i + 1 <= 63 && j + 3 <= 47)
{
if(MainEntry.theForm.Map[i - 1,j + 1].imageIndex == index - 21)
{
i = i - 1;
j = j + 1;
return true;
}
}
return false;
}
/// <summary>
/// 在绘图之前检查是否可以灰图
/// </summary>
/// <param name="i">该点坐标i</param>
/// <param name="j">该点坐标j</param>
/// <returns>可以返回true,否则返回false</returns>
public static bool CanBeDrawing(int i,int j)
{
if(MainEntry.theForm.Map[i,j].imageIndex == FormMain.TakeUP
|| MainEntry.theForm.Map[i,j].imageIndex == FormMain.ShowNumber)
{
return false;
}
if(MainEntry.theForm.Map[i,j].fileIndex == 1)
{
if(MainEntry.theForm.Map[i,j].imageIndex <= 8)
{
return false;
}
}
if(CheckClass.CheckIfHasPlayer(i,j))
{
return false;
}
//}
return true;
}
//
/// <summary>
/// 检查是否可以拖动(只有代表道路和环境的图片才能拖动)
/// </summary>
/// <returns></returns>
public static bool CanBeDraging()
{
if(DragSource.thisControl.FileIndex == 0)
{
if((DragSource.thisControl.ImageIndex >=0 && DragSource.thisControl.ImageIndex <= 9)
|| (DragSource.thisControl.ImageIndex >=18 && DragSource.thisControl.ImageIndex <= 21)
|| (DragSource.thisControl.ImageIndex >= 36 && DragSource.thisControl.ImageIndex <= 47))
{
return true;
}
}
return false;
}
/// <summary>
/// 检查该点是否有玩家存在
/// </summary>
/// <param name="i">该点坐标i</param>
/// <param name="j">该点坐标j</param>
/// <returns>是则返回true,否则返回false</returns>
public static bool CheckIfHasPlayer(int i,int j)
{
for(int t = 0;t < 4;t++)
{
if(MainEntry.theForm.PlayerState[t].x == i
&& MainEntry.theForm.PlayerState[t].y == j)
{
return true;
}
}
return false;
}
/// <summary>
/// 为恢复地图做准备
/// </summary>
public static void SelectInfoIntoRecoverMapInfoFirst()
{
for(int i = 0;i < 64;i++)
{
for(int j = 0;j < 48;j++)
{
if(MainEntry.theForm.Map[i,j].fileIndex == 1)
{
for(int ii = 0;ii < 3;ii++)
{
for(int jj = 0;jj < 3;jj++)
{
MainEntry.theForm.RecoverMapInfo[i + ii,j + jj].fileIndex = 0;
MainEntry.theForm.RecoverMapInfo[i + ii,j + jj].imageIndex = MainEntry.theForm.Map[i + ii,j + jj].imageIndex;
}
}
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -