nodesnim/nodes2d/camera2d

Types

Camera2DObj = object of Node2DObj
  smooth*: bool
  smooth_speed*: float
  target*: NodeRef
  limit*: AnchorObj          ## left, top, right, bottom
  
Camera2DRef = ref Camera2DObj

Procs

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

Creates a new Camera2D.

Arguments:

  • name is a node name.

Example:

var node = Camera2D("Camera2D")

Methods

method changeTarget(self: Camera2DRef; target: NodeRef) {...}{.base, raises: [],
    tags: [].}
Changes camera target (without camera position.)
method changeSmoothSpeed(self: Camera2DRef; speed: float) {...}{.base, raises: [],
    tags: [].}

Changes camera smooth speed.

Arguments:

  • speed is a smooth speed. The closer to 0, the smoother the camera. The default is 0.1.
method disableSmooth(self: Camera2DRef) {...}{.base, raises: [], tags: [].}

Disables smooth mode.

See also:

method draw(self: Camera2DRef; w, h: GLfloat) {...}{.raises: [], tags: [].}
this method uses in the window.nim.
method duplicate(self: Camera2DRef): Camera2DRef {...}{.base, raises: [], tags: [].}
Duplicates Camera2D and create a new Camera2D object.
method enableSmooth(self: Camera2DRef; speed: float = 0.1) {...}{.base, raises: [],
    tags: [].}

Enables camera smooth mode.

Arguments:

  • speed is a smooth speed. The closer to 0, the smoother the camera. The default is 0.1.

See also:

method isCurrent(self: Camera2DRef): bool {...}{.base, raises: [], tags: [].}
method setCurrent(self: Camera2DRef) {...}{.base, raises: [], tags: [].}
Changes the current camera. It also automatically disable other cameras.
method setLimit(self: Camera2DRef; x1, y1, x2, y2: float) {...}{.base, raises: [],
    tags: [].}
Change camera limit.
method setLimit(self: Camera2DRef; limit: AnchorObj) {...}{.base, raises: [],
    tags: [].}
Changes camera limit.
method setTarget(self: Camera2DRef; target: NodeRef) {...}{.base, raises: [],
    tags: [].}
Changes camera target node.