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 - Basta

Pages: [1] 2 3 4 Suivante »
1
Général / Re : [CMake] FindSFML
« le: Février 27, 2013, 09:22:08 pm »
Eh bien justement je ne sais pas ce que je doit faire de plus ou de moins

2
Général / Re : Le programme plante avec le code minimal
« le: Février 27, 2013, 08:04:33 pm »
J'imagine que c'est une erreur dans l'importation de la bibliotèque, du genre linkage, je pense qu'il faudrait plus de précisions sur l'erreur et le contexte.

3
Général / [CMake] FindSFML
« le: Février 27, 2013, 06:33:47 pm »
Bonjour, je débute dans l'utilisation de CMake et je rencontre des problèmes en essayant d'importer SFML 2 avec le FindSFML.cmake trouvé sur github, SFML ne semble pas être trouvée, voici l'erreur :

CMake Error at cmake_modules/FindSFML.cmake:199 (message):
  Could NOT find SFML (missing: SFML_SYSTEM_LIBRARY SFML_WINDOW_LIBRARY
  SFML_GRAPHICS_LIBRARY SFML_AUDIO_LIBRARY)
Call Stack (most recent call first):
  CMakeLists.txt:8 (FIND_PACKAGE)
 

Voici le CMakeLists.txt :

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

PROJECT(OpenGLTest)

SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH})

FIND_PACKAGE(SFML 2 COMPONENTS system window graphics audio REQUIRED)
FIND_PACKAGE(OpenGL REQUIRED)

SET(
        ALL_LIBS
        ${SFML_LIBRARIES}
        ${OPENGL_LIBRARIES}
)
       
INCLUDE_DIRECTORIES(
        include/
        ${SFML_INCLUDE_DIR}
        ${OPENGL_INCLUDE_DIR}
)

FILE(
        GLOB_RECURSE
        ${PROJECT_NAME}_SOURCES
        src/*.cpp
)
FILE(
        GLOB_RECURSE
        ${PROJECT_NAME}_HEADERS
        include/*.h
)
       
ADD_EXECUTABLE(
        ${PROJECT_NAME}
        ${${PROJECT_NAME}_SOURCES}
        ${${PROJECT_NAME}_HEADERS}
)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ALL_LIBS})
 

En sachant que j'ai installé SFML 2 à l'emplacement suivant : C:\Prog\SFML-2.0

4
Général / Re : [Architecture] Animation
« le: Décembre 18, 2012, 01:16:05 pm »
Je ne crois pas qu'il y ai une limite concernant la taille d'un fichier png, mais je me trompe peut-être.

5
Général / Re : [Architecture] Animation
« le: Décembre 17, 2012, 06:22:56 pm »
D'après ce que j'ai compris un sf::Sprite ne fait qu'utiliser une image, et c'est l'image (sf::Image) qui prends de la place et dont les modifications sont délicates, mais je pense qu'il vaut mieux tout de même passer par des références que par des copies dès qu'on s'éloigne des types du genre int, double, string, etc.

Après pour ce qui est de l'architecture ce n'est pas comme cela que j'aurais fait :

/*!
  \class Animation
  \brief gere les mecanismes des animations
  */

class Animation
{
public:
    Animation(const sf::Clock*, sf::Sprite&, sf::Vector3f subrects);
    Animation(const sf::Clock*, sf::Sprite&, sf::Vector3f subrects, int period);
    Animation(const sf::Clock*, sf::Sprite&, sf::Vector3f subrects, sf::Vector2f pos);
    Animation(const sf::Clock*, sf::Sprite&, sf::Vector3f subrects, sf::Vector2f pos, voidFnPtr startFn, voidFnPtr eachFn, voidFnPtr endFn);
    Animation(const sf::Clock*, sf::Sprite&, sf::Vector3f subrects, sf::Vector2f pos, int period, voidFnPtr startFn, voidFnPtr eachFn, voidFnPtr endFn);

    void test();    /*!< teste et actualise l'animation \warning a appeler a chaque actualisation de l'objet concerne */
    void play();    /*!< lance l'animation */
    void stop();    /*!< arrete l'animation */

    bool isPlaying();

protected:
    voidFnPtr m_startFn;    /*!< fonction appelee a chaque debut d'animation */
    voidFnPtr m_eachFn;     /*!< fonction appelee a chaque periode de l'animation */
    voidFnPtr m_endFn;      /*!< fonction appelee a chaque fin d'animation */

    sf::Sprite *m_spr;  /*!< sprite subissant les modfifications */
    sf::Vector3f m_subrects;    /*!< x = largeur d'un cadre, y = longueur, z = nombre de cadres/phases */
    sf::Vector2f m_pos; /*!< position dans le sprite du premier cadre */
    int m_period;   /*!< temps separant chaque phase */
    int m_startTime; /*!< temps de départ */
    bool m_playing; /*!< statut de l'animation */
    const sf::Clock *m_clock;
};

Ce n'est pas du tout la même approche et je ne sais pas ce qui est le mieux, bonne réflexion  :P.

PS : J'utilise des pointeurs sur fonction, voidFnPtr est un typedef.

6
Graphique / Re : [2.0] - Une image pixel par pixel
« le: Décembre 11, 2012, 03:59:46 pm »
De plus le else censé rendre un pixel noir est bien appelé

7
Graphique / Re : [2.0] - Une image pixel par pixel
« le: Décembre 11, 2012, 03:56:25 pm »
En fait je n'avais pas initialisé mon pointeur, un pointeur par défaut n'est-il pas nul ?
Et l'image est toujours blanche ...

8
Graphique / Re : [2.0] - Une image pixel par pixel
« le: Décembre 11, 2012, 03:52:43 pm »
Mais le tableau n'est pas encore crée et le pointeur est nul  ??? pourtant j'ai bien mis un test pour vérifier que le pointeur n'est pas nul

edit : je précise que seul le cout 0 est appelé

9
Graphique / Re : [2.0] - Une image pixel par pixel
« le: Décembre 11, 2012, 12:59:55 pm »
Alors là je ne comprends pas, en ajoutant *4 et en changeant l'alpha du else a 255, le programme cesse de fonctionner.

    std::cout << 0;
    if(m_image)
        delete m_image;
    std::cout << 1;

Le plantage serait à ce niveau là, pourtant je ne vois pas ce qu'il peut arriver sur ce simple delete  :-\ (oui, oui les delete ne sont pas simples).
De plus cette ligne était présente dans le code précédent qui ne bloquait pas à ce niveau là ....

10
Graphique / [2.0] - Une image pixel par pixel
« le: Décembre 10, 2012, 10:23:38 pm »
Bonjour, j'ai déjà cherché des informations sur le sujet et testé un code mais quelque chose ne vas pas, est-ce que j'ai mal compris le principe ou est-ce que j'ai fait un faute d'étourderie, je ne sais pas et après avoir tenté pas mal de choses je voudrais avoir un avis extérieur  :).
(Le code a pour but de dessiner la fractale de Mandelbrot pixel par pixel)

Je crée mon tableau de pixels :

const sf::Uint8 *Generator::update(Seed seed)
{
    if(m_image) delete m_image;
    m_image = new sf::Uint8[seed.getSize().x*seed.getSize().y*4];

    for(int x(0) ; x!=seed.getSize().x ; ++x)
    {
        for(int y(0) ; y!=seed.getSize().y ; ++y)
        {
            seed.reset(x, y);
            unsigned int i(0);

            while(seed.getCriticalSqMod()<4
                  && i!=seed.getIteration())
            {
                seed.loop(x, y);
                ++i;
            }

            unsigned int pos(y + x*seed.getSize().y);
            if(i==seed.getIteration())
            {
                m_image[pos]    = 255;
                m_image[pos+1]  = 255;
                m_image[pos+2]  = 255;
                m_image[pos+3]  = 255;
            }
            else
            {
                m_image[pos]    = 0;
                m_image[pos+1]  = 0;
                m_image[pos+2]  = 0;
                m_image[pos+3]  = 0;
            }
        }
    }

    return m_image;
}

Et ensuite j'utilise ce tableau pour faire un Sprite :

    Seed seed;
    Generator engine;

    sf::Texture txtr;
    txtr.create(seed.getSize().x, seed.getSize().y);
    txtr.update(engine.update(seed));

    sf::Sprite sprite(txtr);

Seulement j'obtiens simplement une belle image blanche au lieu de ma fractale. Je ne pense pas que l'erreur vienne des calculs mathématiques, et je n'ai pas posté le détail, au moins je saurais si cela viens de mon utilisation de SFML.

Merci d'avance.

11
Général / Re : InputManager
« le: Novembre 24, 2012, 10:00:25 am »
Mais tu veux simplement envelopper les fonctions de sf::Keyboard ou aussi savoir quand la touche viens juste d'être appuyée ou relachée ? Là tu ne sauras que si la touche est actuellement appuyée ou relachée, ce qui n'apporte rien aux fonctions existantes si je ne me trompe.

12
Général / Re : InputManager
« le: Novembre 23, 2012, 05:23:57 pm »
Et bien si tu regarde mon code je gère KeyReleased :D

13
Général / Re : InputManager
« le: Novembre 23, 2012, 04:24:01 pm »
Le gros avantage que j'en retire est de savoir si une touche est pressée ou non mais également si elle viens de changer d'état : je veux ajouter 1 à mon compteur quand je clique sur "a", mais je veux ajouter 1 pour chaque appui et non pour chaque tour de boucle où le bouton est appuyé, ou le contraire. Avec les fonctions statiques je ne sais pas, sans ajouter de variables, quand l'état change, avec les events je ne suis informé que des changements. J'exploite tout simplement ces fonctions pour avoir à la fois l'état actuel et savoir si il a changé, pour cela j'ai choisi les sf::Events et non les classes statiques mais c'est une question de goût j'imagine.

14
Général / Re : InputManager
« le: Novembre 23, 2012, 11:54:30 am »
Je sais pas si ça t'intéresses mais voilà comment je gère les events en ce moment, après j'envoie un pointeur constant sur la classe à mes objets pour qu'ils puissent accéder au membres publics, après je ne sais pas si c'est correct  :P.
Je te laisse imaginer le .cpp :

/*class Application;
class AssetManager;
class PhysicManager;*/


class DelegateManager
{
public:
    template<typename T>
    struct State
    {
        bool hasChanged;
        T value;
    };

    struct Mouse
    {
        bool anyPressed;
        sf::Vector2i lastPos;
        sf::Vector2i pos;
        State<int> wheel;

        State<bool> left;
        State<bool> right;
        State<bool> middle;
        State<bool> xBtn1;
        State<bool> xBtn2;
    };

    struct Keyboard
    {
        bool anyPressed;
        State<std::string> textEntered;

        State<bool> up;
        State<bool> right;
        State<bool> down;
        State<bool> left;

        State<bool> a;
        State<bool> b;
        State<bool> c;
        State<bool> d;
        State<bool> e;
        State<bool> f;
        State<bool> g;
        State<bool> h;
        State<bool> i;
        State<bool> j;
        State<bool> k;
        State<bool> l;
        State<bool> m;
        State<bool> n;
        State<bool> o;
        State<bool> p;
        State<bool> q;
        State<bool> r;
        State<bool> s;
        State<bool> t;
        State<bool> u;
        State<bool> v;
        State<bool> w;
        State<bool> x;
        State<bool> y;
        State<bool> z;

        State<bool> any0;
        State<bool> any1;
        State<bool> any2;
        State<bool> any3;
        State<bool> any4;
        State<bool> any5;
        State<bool> any6;
        State<bool> any7;
        State<bool> any8;
        State<bool> any9;

        State<bool> escape;
        State<bool> ctrlL;
        State<bool> ctrlR;
        State<bool> shiftL;
        State<bool> shiftR;
        State<bool> altL;
        State<bool> altR;

        State<bool> space;
        State<bool> rreturn;
        State<bool> back;
        State<bool> tab;

        State<bool> f1;
        State<bool> f2;
        State<bool> f3;
        State<bool> f4;
        State<bool> f5;
        State<bool> f6;
        State<bool> f7;
        State<bool> f8;
        State<bool> f9;
        State<bool> f10;
        State<bool> f11;
        State<bool> f12;
        State<bool> f13;
        State<bool> f14;
        State<bool> f15;
    };

    struct Window
    {
        State<bool> focus;
        State<bool> mouseIn;
        State<sf::Vector2i> size;
        sf::Clock clock;
    };

public:
    DelegateManager(/*Application *app, sf::RenderWindow *win, AssetManager *assetMan, PhysicManager *physicMan*/);

    void reset();
    void manage(sf::Event &event);

    Mouse       mouse;
    Keyboard    keyboard;
    Window      window;/*
    Application         *app;
    sf::RenderWindow    *target;
    AssetManager        *assetManager;
    PhysicManager       *physicManager;*/


private:
    void setMouseBtnState(sf::Mouse::Button&, bool state);
    void setKeyState(sf::Keyboard::Key&, bool state);
};
 

15
Audio / Re : [2.0] MusicBuffer
« le: Novembre 15, 2012, 04:23:56 pm »
En effet je n'y avait pas pensé, merci pour les éclairements.

Pages: [1] 2 3 4 Suivante »