JunctionQueue *GraphicSystem::Process(Entity *entity) { TransformComponent *transform = (TransformComponent*)(entity->GetComponent(Component::ComponentType::Transform)); GraphicsComponent *graphics = (GraphicsComponent*)(entity->GetComponent(Component::ComponentType::Graphics)); graphics->SetPos(transform->GetX(), transform->GetY()); graphics->SetRotation(transform->GetRotation()); graphics->Draw(_window); return new JunctionQueue(); }
void BulletBodyComponent::Finalize( const BulletBodyComponentDefinition &definition ) { BulletWorldComponent *pBulletWorldComponent = GetWorld()->GetComponents().GetFirst<BulletWorldComponent>(); HELIUM_ASSERT( pBulletWorldComponent ); HELIUM_ASSERT( definition.m_BodyDefinition ); TransformComponent *pTransform = GetComponentCollection()->GetFirst<TransformComponent>(); HELIUM_ASSERT( pTransform ); m_Body.Initialize( *pBulletWorldComponent->GetBulletWorld(), *definition.m_BodyDefinition, pTransform ? pTransform->GetPosition() : Simd::Vector3::Zero, pTransform ? pTransform->GetRotation() : Simd::Quat::IDENTITY); btVector3 velocity; ConvertToBullet(definition.m_InitialVelocity, velocity); m_Body.GetBody()->setLinearVelocity(velocity); m_Body.GetBody()->setUserPointer( this ); m_AssignedGroups = definition.m_AssignedGroups; m_TrackPhysicalContactGroupMask = definition.m_TrackPhysicalContactGroupMask; }
void GraphicsComponent::Draw(SpriteBatch* spriteBatch) { TransformComponent* transformComponent = owner->GetComponent<TransformComponent>(TransformComponent::name); sprite->Draw(spriteBatch, transformComponent->GetPosition(), transformComponent->GetRotation(), transformComponent->GetScale()); }