Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Eraac

Pages: [1]
1
Graphique / Re : Problème étrange sf::Color
« le: Avril 16, 2014, 01:54:39 pm »
Merci Laurent. Je vais certainement utilisé des macros

2
Graphique / Re : Problème étrange sf::Color
« le: Avril 16, 2014, 10:43:47 am »
Quel serait donc la meilleur solution ? Mettre les couleurs directement dans Case.hpp (en attribut static) ? Dans la mesure où ces variables sont uniquement utilisées dans cette classe.

3
Graphique / [Résolu] Problème étrange sf::Color
« le: Avril 16, 2014, 09:42:56 am »
Bonjour,

J'ai un problème très étrange sur la SFML (2.1) avec sf::Color et particulièrement avec les couleurs pré-définis (Cyan, Red, Yellow, etc). Voilà le code :

Const.hpp
#pragma once

const sf::Color selectState      = sf::Color::Blue; // Ne fonctionne pas (couleur noir)
const sf::Color test = sf::Color(125, 125, 125); // Fonctionne (couleur marron)
const sf::Color unknowState = sf::Color::Cyan;  // Ne fonctionne pas (couleur noir)
const sf::Color alreadyTouchState = sf::Color::Black;
const sf::Color emptyState      = sf::Color::Yellow;  // Ne fonctionne pas (couleur noir)
const sf::Color boatTouchState = sf::Color::Red;  // Ne fonctionne pas (couleur noir)

 

Case.hpp
#include <SFML\Graphics.hpp>
#include "const.hpp"

class Case
{
        public:
                                                Case(void);
                                                ~Case(void);           

                void                            setPosition(int p_X, int p_Y);
                void                            select();
                void                            unselect();
                StateLastHit            fire();
                sf::RectangleShape const& getSprite() const;

        private:
                Case::Status            _status;
                sf::RectangleShape      _case;

};
 

Case.cpp (Les zones avec les sf::Color sont normalement supposé avoir les const défini dans const.hpp)
#include "Case.hpp"

Case::Case(void) : _status(Status::Empty), _case(sf::Vector2f(SIZE_CASE, SIZE_CASE)) {
        _case.setFillColor(sf::Color::Cyan);     // unknowState
}


Case::~Case(void) {
}


void Case::setPosition(int p_X, int p_Y)
{
        _case.setPosition(p_X, p_Y);
}


void Case::select()
{
        if(_status == Status::Empty)
                _case.setFillColor(sf::Color::Blue); // selectState
        else
                _case.setFillColor(sf::Color::Black); // alreadyTouchState
}


void Case::unselect()
{
        if(_status == Status::Empty)
                _case.setFillColor(sf::Color::Cyan); // unknowState
        else if(_status == Status::EmptyTouch) // Touch but nothing
                _case.setFillColor(emptyState); // emptyState
        else // Touch a boat
                _case.setFillColor(sf::Color::Red); // boatTouchState

}


StateLastHit Case::fire() {
       
        // Server request here

        if(_status == Status::Empty) {
                _status = Status::EmptyTouch;
                _case.setFillColor(emptyState);
        }

        return StateLastHit::onSea;
}


sf::RectangleShape const& Case::getSprite() const
{
        return _case;
}
 

En step-by-step le compilateur m'annonce que les const sf::Color sont égales à r = 0, g = 0, b = 0 (donc noir)

PS : Je suis sous Visual Studio 2012

Pages: [1]