User Tools

Site Tools


en:orx:reference:object:snippets

This is an old revision of the document!


Object: Code Snippets

OrxFrame

OrxFX

OrxFXPointer

OrxObject

OrxObject_SetPosition

orxVECTOR tilePos;
orxVector_Set(&tilePos, orx2F(80.0f) * x, orx2F(160.0f), orxFLOAT_0);
orxObject_SetPosition(tile, &tilePos);
orxVECTOR pos;
orxObject_GetPosition(player, &pos);
pos.fX = -pos.fX;
orxObject_SetPosition(player, &pos);

orxObject_SetRotation

Rotation is set in radians. Zero rad vector is equivalent to (1, 0) vector in screen coordinates. In other words it is a horizontal line pointing from left to right.

Positive rotation is set in clockwise direction. If vector origin was in the center of the screen, then 1 rad would point to the left right corner of the screen.

orxObject_SetAngularVelocity

Set angular velocity changes object rotation value over time. Setting positive value make object rotate clockwise. Negative value sets counterclockwise direction.

TBD: What's the unit of measure?

orxObject_GetWorldRotation and orxObject_GetRotation

As object rotates continuously clockwise its angle will continue to increase. Thus after a first full circle its angle will be set to 2*Pi. After the second full circle it will be set to 4*Pi. The same is true for confer-clockwise rotation. The 1st full circle will be set to -2*Pi and so on.

Thus you may have to normalize the rotation value of the object.

orxObject_CreateNeighborList and orxObject_DeleteNeighborList

Use it to obtain objects within the specified bounding box.

    orxOBJECt *obj; // comes from mouse click event or in some other way
    orxVECTOR pos, size;
    orxFLOAT range = 250.;
    orxOBOX box;
 
    orxObject_GetWorldPosition(obj, &pos);
    orxVector_Set(&size, range, range, 0.);
    orxOBox_2DSet(&box, &pos, &orxVECTOR_0, &size, 0.);
 
    orxBANK *neighbors = orxObject_CreateNeighborList(box);
    void* cell = orxNULL;
    while ((cell = orxBank_GetNext(neighbors, cell))) {
        orxOBJECT **n = cell;
        orxLOG("object name: %s.", orxObject_GetName(*n));
    }
    orxObject_DeleteNeighborList(neighbors);

object traversing

Object Traversing has its own page due to somewhat large discussion on the topic.

OrxSpawner

OrxStructure

OrxTimeLine

en/orx/reference/object/snippets.1368600696.txt.gz ยท Last modified: 2017/05/30 00:50 (8 years ago) (external edit)