nodesnim/nodes2d/collision_shape2d

It provides collision shapes.

Types

CollisionShape2DType {...}{.size: 1, pure.} = enum
  COLLISION_SHAPE_2D_RECTANGLE, COLLISION_SHAPE_2D_CIRCLE,
  COLLISION_SHAPE_2D_POLYGON
CollisionShape2DObj = object of Node2DObj
  disable*: bool
  x1*, y1*, radius*: float
  polygon*: seq[Vector2Ref]
  shape_type*: CollisionShape2DType
CollisionShape2DPtr = ptr CollisionShape2DObj

Procs

proc CollisionShape2D(name: string = "CollisionShape2D"): CollisionShape2DPtr {...}{.
    raises: [], tags: [].}

Creates a new CollisionShape2D pointer.

Arguments:

  • name is a node name.

Examples:

var node = CollisionShape2D("CollisionShape2D")

Methods

method setShapeTypeRect(self: CollisionShape2DPtr) {...}{.base, raises: [], tags: [].}
Changes shape type to circle.
method setShapeTypeCircle(self: CollisionShape2DPtr; cx, cy, radius: float) {...}{.base,
    raises: [], tags: [].}

Changes shape type to rectangle.

Arguments:

  • cx is a center circle position at X axis.
  • cy is a center circle position at Y axis.
  • radius is a circle radius.
method setShapeTypePolygon(self: CollisionShape2DPtr;
                          positions: varargs[Vector2Ref]) {...}{.base, raises: [],
    tags: [].}

Changes shape type to polygon.

Arguments:

  • positions is a varargs of polygon positions. Should be more than 2.
method draw(self: CollisionShape2DPtr; w, h: GLfloat) {...}{.raises: [], tags: [].}
this method uses in the window.nim.
method duplicate(self: CollisionShape2DPtr): CollisionShape2DPtr {...}{.base, raises: [],
    tags: [].}
Duplicates CollisionShape2D object and create a new CollisionShape2D pointer.
method getGlobalMousePosition(self: CollisionShape2DPtr): Vector2Ref {...}{.inline,
    raises: [], tags: [].}
Returns mouse position.
method isCollide(self: CollisionShape2DPtr; x, y: float): bool {...}{.raises: [], tags: [].}

Checks collision with point.

Arguments:

  • x is a point position at X axis.
  • y is a point position at Y axis.
method isCollide(self: CollisionShape2DPtr; vec2: Vector2Ref): bool {...}{.raises: [],
    tags: [].}
Checks collision with point.
method isCollide(self, other: CollisionShape2DPtr): bool {...}{.base, raises: [], tags: [].}
Checks collision with other CollisionShape2D object.