AABB
AlignmentBehavior
ArriveBehavior
AStar
BFS
BoundingSphere
BVH
BVHNode
Cell
CellSpacePartitioning
CohesionBehavior
CompositeGoal
ConvexHull
Corridor
CostTable
DFS
Dijkstra
Edge
EntityManager
EvadeBehavior
EventDispatcher
Behavior
FollowPathBehavior
FuzzyAND
FuzzyCompositeTerm
FuzzyFAIRLY
FuzzyModule
FuzzyOR
FuzzyRule
FuzzySet
FuzzyTerm
FuzzyVariable
FuzzyVERY
GameEntity
Goal
GoalEvaluator
Graph
GraphUtils
HalfEdge
HeuristicPolicyDijkstra
HeuristicPolicyEuclid
HeuristicPolicyEuclidSquared
HeuristicPolicyManhattan
InterposeBehavior
LeftSCurveFuzzySet
LeftShoulderFuzzySet
LineSegment
Logger
MathUtils
Matrix3
Matrix4
MemoryRecord
MemorySystem
MeshGeometry
MessageDispatcher
MovingEntity
NavEdge
NavMesh
NavMeshLoader
NavNode
Node
NormalDistFuzzySet
OBB
ObstacleAvoidanceBehavior
OffsetPursuitBehavior
OnPathBehavior
Path
Plane
Polygon
Polyhedron
PriorityQueue
PursuitBehavior
Quaternion
Ray
RectangleTriggerRegion
Regular
RightSCurveFuzzySet
RightShoulderFuzzySet
SAT
SeekBehavior
SeparationBehavior
SingletonFuzzySet
Smoother
SphericalTriggerRegion
State
StateMachine
SteeringBehavior
SteeringManager
Task
TaskQueue
Telegram
Think
Time
TriangularFuzzySet
Trigger
TriggerRegion
Vector3
Vehicle
Version
WanderBehavior

Source

概述

Source 对象是 AStar 算法中的节点类,表示地图中的一个可走区域或可通过障碍物的通道。

属性

Source 对象具有以下属性:

属性 类型 描述
x number 节点的 x 坐标
y number 节点的 y 坐标

方法

Source 对象具有以下方法:

.equal(other: Source): boolean

比较该节点与另一个节点是否相同时,返回 true;当另一个节点不等于该节点时,返回 false

参数:

  • other (Source): 比较的另一个节点。

返回值:

  • (boolean): 节点是否相同。

.distanceTo(other: Source): number

返回该节点与另一个节点之间的距离。

参数:

  • other (Source): 另一个节点。

返回值:

  • (number): 两个节点之间的距离。

示例

const source = new Source(0, 0);
const target = new Source(3, 4);

const distance = source.distanceTo(target);
console.log(distance); // 5

常见问题

如何使用 Source 类构建地图?

Source 类只表示地图中的一个节点,因此可以使用多个 Source 对象来构建地图。通常,可以在初始化时将若干个 Source 对象放入数组中,代表地图上的所有可行走区域和可通过障碍的通道。

怎么判断两个节点是否连通?

在 A* 算法中,两个节点是否连通可以通过判断它们之间是否存在一条可行的路径来确定。如果两个节点之间存在可行的路径,则它们是连通的;反之,则是不连通的。

如何在 Source 对象上执行其他操作?

可以通过继承 Source 类或扩展其原型来添加新的方法或属性,以实现更多操作。例如,可以为每个节点添加一个名称属性,并在 equal 方法中进行比较。