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 ); }
void init() { buildFont(); resetObjects(); // Set Player / Enemy Starting Positions timerInit(); }