Example #1
0
void CardDisplay::init(MTGGameZone * zone)
{
    resetObjects();
    if (!zone) return;
    start_item = 0;
    for (int i = 0; i < zone->nb_cards; i++)
    {
        AddCard(zone->cards[i]);
    }
    if (mObjects.size()) mObjects[0]->Entering();
}
void ObjectGenerator::initializeMessage()
{
    polysync::datamodel::SensorDescriptor descriptor;

    descriptor.setId( _sensorID );
    descriptor.setTransformParentId( PSYNC_COORDINATE_FRAME_LOCAL );
    descriptor.setType( PSYNC_SENSOR_KIND_NOT_AVAILABLE );
    _message.setSensorDescriptor( descriptor );

    _message.setHeaderTimestamp( polysync::getTimestamp() );

    resetObjects();

    _message.setObjects( _objectVector );
}
void ObjectGenerator::updateObjects()
{
    auto time = polysync::getTimestamp();

    // for each target
    for( auto index = 0; index < _objectCount; ++index )
    {
        // Get time difference from last update
        auto timeDelta = time - _message.getTimestamp();

        // Convert to seconds
        auto timeDeltaSeconds = static_cast< double >( timeDelta )/ 1000000.0;

        auto position = _objectVector[ index ].getPosition();

        // update position using p = p_0 + v * dt
        _objectVector[ index ].setPosition(
            { position[ 0 ] + _velocityX * timeDeltaSeconds,
              position[ 1 ] + _velocityY * timeDeltaSeconds,
              0.0 } );

        // set timestamp
        _objectVector[ index ].setTimestamp( time );

        if( _objectVector[ index ].getPosition()[ 0 ] > 30.0 )
        {
            _reset = true;
        }
    }

    // if reset flag set
    if( _reset )
    {
        resetObjects();
    }

    _message.setObjects( _objectVector );

    // set header timestamp
    _message.setHeaderTimestamp(  time );
}
Example #4
0
 void init() {
   buildFont();
   resetObjects();                                           // Set Player / Enemy Starting Positions
   timerInit();
 }