|  |  | 
 |  |  | import lombok.Data; | 
 |  |  |  | 
 |  |  | import java.io.Serializable; | 
 |  |  | import java.util.Optional; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * A*寻路算法Node节点 | 
 |  |  | 
 |  |  |     private int x;//坐标x | 
 |  |  |     private int y;//坐标y | 
 |  |  |     private int z;//坐标z(高度) | 
 |  |  |     private Integer lastDistance;//步数 | 
 |  |  |     private int F;//综合花费的步数 | 
 |  |  |     private int G;//已经花费的步数 | 
 |  |  |     private int H;//将要花费的步数 | 
 |  |  | 
 |  |  |     public void init_node(NavigateNode father, NavigateNode end) { | 
 |  |  |         this.Father = father; | 
 |  |  |         if (this.Father != null) { | 
 |  |  |             //走过的步数等于父节点走过的步数加一 | 
 |  |  |             this.G = father.G + 1; | 
 |  |  |             //走过的步数等于父节点走过的步数加最新步数 | 
 |  |  |             this.G = father.G + Optional.ofNullable(this.lastDistance).orElse(0); | 
 |  |  |         } else { //父节点为空代表它是第一个结点 | 
 |  |  |             this.G = 0; | 
 |  |  |         } |