void Entite_graphique::Initialiser(const coordonnee &pos)
{
    if(m_tileset != NULL)
    {
        NextTile(true, true);
        Generer();

        if(configuration->Lumiere)
        if(m_tileset->getTaille() > 0)
        {
            AddWallLight(pos);
            if(option_forcedLight)
            {
                sf::Vector2f position;
                position.x = pos.x + m_decalage.x;
                position.y = pos.y + m_decalage.y;

                m_light = moteurGraphique->LightManager->Add_Dynamic_Light(position,m_tileset->getLumiereDuTile(m_noAnimation).intensite > 0 ? 255 : 0,m_tileset->getLumiereDuTile(m_noAnimation).intensite*3,12,
                                                                            sf::Color(m_tileset->getLumiereDuTile(m_noAnimation).rouge,
                                                                                      m_tileset->getLumiereDuTile(m_noAnimation).vert,
                                                                                      m_tileset->getLumiereDuTile(m_noAnimation).bleu));
            }
        }
    }
}
Beispiel #2
0
Carte::Carte(b2World* world, const sf::Vector2i& taille, float valMoy, float diff, int seed): m_ciel(sf::Vector2f(taille.x, taille.y), 5.f)
{
    m_world=world;
    m_nodeTerrain = GraphicalEngine::GetInstance()->GetSceneManager()->GetRootNode()->AddSceneNode();
    m_itemTerrain = new SceneNodeTextureItem;
    m_itemDroite = new SceneNodeShapeItem;
    m_itemGauche = new SceneNodeShapeItem;
    m_nodeTerrain->AddItem(m_itemTerrain);
    m_nodeTerrain->AddItem(m_itemDroite);
    m_nodeTerrain->AddItem(m_itemGauche);
    m_itemDessousTerrain = new SceneNodeShapeItem;
    m_nodeTerrain->AddItem(m_itemDessousTerrain);


    m_destruction = false;
    m_modified = false;
    m_tailleZone = 100;
    Generer(taille, seed, valMoy, diff);
}
void Entite_graphique::Animer(float temps)
{
    attaque_touche  = false;
    attaque_stop    = false;
    attaque_pause   = false;

    if(m_tileset != NULL)
    {
        float tempsAnimation = m_tileset->getTempsDuTile(m_noAnimation) + m_nextAnimation;
        m_animation += temps;

        if(configuration->Lumiere > 0)
        if(m_old_lightIntensity != m_tileset->getLumiereDuTile(m_noAnimation).intensite
        && m_tileset->getLumiereDuTile(m_noAnimation).intensite >= 0)// && !option_forcedLight)
        {
            float intensite = m_old_lightIntensity;
            intensite += m_animation/tempsAnimation * (m_tileset->getLumiereDuTile(m_noAnimation).intensite - m_old_lightIntensity);
            moteurGraphique->LightManager->SetRadius(m_light,(int)intensite*3);

            if (m_animation >= tempsAnimation)
                m_old_lightIntensity = m_tileset->getLumiereDuTile(m_noAnimation).intensite;

            moteurGraphique->LightManager->Generate(m_light);
        }

        if (m_tileset->getAnimationTile(m_noAnimation) >=0)//!= m_noAnimation)
            while (m_animation >= tempsAnimation && tempsAnimation > 0)
            {
                //if(m_tileset->getAnimationTile(m_noAnimation) != m_noAnimation)
                NextTile();
                Generer();

                m_animation -= tempsAnimation;
                tempsAnimation = m_tileset->getTempsDuTile(m_noAnimation) + m_nextAnimation;
            }
    }
}