void MiniMap::Render() { mMiniMap.Render(); SVector2 boxPosition(1375, 10); int numberOfNPCS = mMap.GetNumberOfNPCS(); int numberOfPlayers = mOtherPlayers.GetNumberOfPlayers(); SCircle mapCircle(1482, 114, 75); //Graphics_DebugCircle(mapCircle, 0XFF0000); SVector2 offset(boxPosition.x + mMiniMap.GetWidth() * 0.5f, boxPosition.y + mMiniMap.GetHeight() * 0.5f); for(int a = 0; a < numberOfNPCS; ++a) { SVector2 position = ((mMap.GetNPC(a)->GetPosition() - mCharacter.GetPosition()) * 0.05f + offset); SCircle tempCircle(position, 1); // If within our map radius if(Intersect(tempCircle, mapCircle)) { mMiniMapEnemy.SetPosition(position); mMiniMapEnemy.Render(); } } // If within our map radius mMiniMapPlayer.SetPosition(offset); mMiniMapPlayer.Render(); for(int a = 0; a < numberOfPlayers; ++a) { SVector2 position = ((mOtherPlayers.GetPlayer(a)->GetPosition() - mCharacter.GetPosition()) * 0.05f + offset); SCircle tempCircle(position, 1); // If within our map radius if(Intersect(tempCircle, mapCircle)) { mMiniMapChar.SetPosition(position); mMiniMapChar.Render(); } } }
//Creates multiple circles one ontop the other to create an effect void LightSource::CreateCircle() { m_LightTexture->clear(); for(unsigned int i = 0; i < m_LightRadius / 2.0f; ++i) { sf::CircleShape tempCircle(m_LightRadius-(i*2.f)); tempCircle.setOrigin(sf::Vector2f(m_LightRadius-(i*2.f), m_LightRadius-(i*2.f))); tempCircle.setFillColor(sf::Color(0, 0, 0, 255-(i*2))); tempCircle.setPosition(sf::Vector2f(m_LightRadius, m_LightRadius)); m_LightTexture->draw(tempCircle, sf::BlendNone); } m_LightTexture->display(); m_Circle->setTexture(&m_LightTexture->getTexture() ); m_Circle->setPointCount(m_LightRadius); SetOrigin(sf::Vector2f(m_Circle->getTextureRect().width / 2.0f, m_Circle->getTextureRect().height / 2.0f) ); }
Circle& Circle::operator++(int) { Circle tempCircle(mRadius, mXCoord, mYCoord, mName); tempCircle.mRadius++; return tempCircle; }