5431人加入学习
(7人评价)
Unity2D中级案例 - 猎宝行动

制作于2018.2.14,基于Unity2017.3

价格 ¥ 235.00
该课程属于 Unity - A计划(永久有效期) 请加入后再学习

List<PointData>openList = new List<PointData>();

openList.Add(new PointData(START_PNT,0,0,null));

PointData endPoint = null

for(bool finish = false;!finish&&openList.Count>0;)

{

openList.Sort((x,y)=>{return x.F().CompareTo(y.F());});//最小在上最大在下,降序排列

PointData data = openList[0];

openList.RemoveAt(0);//最小值从开列表去除

Point point = data.point;

if(MAP[point.x,point.y] == SPACE)

{

MAP[point.x,point.y] = VISITED;

}

for(int i = 0;i<directs.Rank;i++){

Point newPoint = new Point(point.x+directs[i,0],point.y+directs[i,1]);

if(newPnt.x>=0&&newPnt.x<MAX_PNT.x&&newPnt.y>=0&&newPnt.y<MAX_PNT.y){

char e = MAP[newPoint.x,newPoint.y];

if(e == END){

endPoint = data;

finish = true;

break;

}

if(e!=SPACE){

continue;

}

//扩展后的点若在开表终则更新g值

PointData tempData = openList.Find((x=>{return x.point.Equals(newPoint);}));

if(tempData!=null){

}

}

}

}

[展开全文]