Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: la fenêtre ne réagit pas convenablement  (Lu 3012 fois)

0 Membres et 1 Invité sur ce sujet

D3M0T3P

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
la fenêtre ne réagit pas convenablement
« le: Janvier 20, 2015, 10:05:40 pm »
Bonsoir à tous j'ai commencé récemment à utiliser ls SFML et j'ai pondu ce code
//
// Disclamer:
// ----------
//
// This code will work only if you selected window, graphics and audio.
//
// Note that the "Run Script" build phase will copy the required frameworks
// or dylibs to your application bundle so you can execute it on any OS X
// computer.
//
// Your resource files (images, sounds, fonts, ...) are also copied to your
// application bundle. To get the path to these resource, use the helper
// method resourcePath() from ResourcePath.hpp
//

#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include "ResourcePath.hpp"
#include "deplacement.h"
#include <iostream>

using namespace sf;
int main()
{
   
    RenderWindow window(VideoMode(800, 600), "SFML shapes");
    Texture texturePersonnage;
    Sprite spritePersonnage;
   
    if (!texturePersonnage.loadFromFile(resourcePath() + "image.png"))
    {
        std::cerr << "error player loading";
    }
   
    else
    {
        spritePersonnage.setTexture(texturePersonnage);
        spritePersonnage.setTextureRect(IntRect(0,0,32,32));
    }
   
    while (window.isOpen())
    {
        Event event;
        while (window.pollEvent(event))
        {
            if (event.type == Event::Closed)
                window.close();
           
        }
       
       
       
        window.clear();
       
        directionClavier(spritePersonnage);
       
        window.draw(spritePersonnage);
       
        window.display();
    }
   
    return EXIT_SUCCESS;
}
le code dans déplacement.h :
//
//  Header.h
//  entrainement
//
//

#ifndef entrainement_Header_h
#define entrainement_Header_h
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>

void directionClavier(sf::Sprite&);

void directionClavier(sf::Sprite& sprite)
{
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up) &&sf::Keyboard::isKeyPressed(sf::Keyboard::Right) )
    {
       
        sprite.move(1, -1);
    }
   
    else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up) &&sf::Keyboard::isKeyPressed(sf::Keyboard::Left) )
    {
       
        sprite.move(-1, -1);
    }
   
    else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down) &&sf::Keyboard::isKeyPressed(sf::Keyboard::Left) )
    {
       
        sprite.move(-1, 1);
    }
   
    else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down) &&sf::Keyboard::isKeyPressed(sf::Keyboard::Right) )
    {
       
        sprite.move(1, 1);
    }
   
    else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
    {
       
        sprite.move(0, -1);
    }
   
    else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
    {
        sprite.move(0, 1);
    }
   
    else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
    {
        sprite.move(1, 0);
    }
   
    else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
    {
        sprite.move(-1, 0);
    }
}


#endif

Le code plante sur le window.draw(spritePersonnage);
L'erreur est : "Thread 1:EXC_BAD_ACCESS(code=EXC_1386_GPFLT)"
J'avais le même problème avec le code de départ ( celui qui est de base lorsque un nouveau projet SFML est créé).
J'utilise la SFML 2.2 avec os yosemite et Xcode 6.1.1
lorsque je run, la fenêtre s'ouvre mais immédiatement le focus se remet sur la fenêtre Xcode et je vois l'erreur puis la fenêtre de mon app ne répond plus. La fonction directionClavier n'agit plus, ma souris se transforme en chargement lorsque je suis au dessus de la fenêtre et les boutons de la fenêtre n'agissent plus mais je peux toujours bouger ma fenêtre et elle se ferme dès que j'arrete le projet dans Xcode.
« Modifié: Septembre 28, 2015, 11:05:59 pm par D3M0T3P »

Hiura

  • SFML Team
  • Hero Member
  • *****
  • Messages: 4321
    • Voir le profil
    • E-mail
Re : la fenêtre ne réagit pas convenablement
« Réponse #1 le: Janvier 21, 2015, 01:16:50 pm »
Utilise le débuggeur et indique nous la stack trace.
SFML / OS X developer

D3M0T3P

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : la fenêtre ne réagit pas convenablement
« Réponse #2 le: Janvier 21, 2015, 02:25:41 pm »
voici ce que le debogueur m'affiche, j'espère que c'est ce que tu voulais. Si ce n'est pas le cas peux-tu m'expliquer précisément ce que je dois faire pour trouver ce stack trace, je ne maitrise pas vraiment bien Xcode avant j'étais sur Qt créator
« Modifié: Janvier 21, 2015, 02:27:27 pm par D3M0T3P »

Hiura

  • SFML Team
  • Hero Member
  • *****
  • Messages: 4321
    • Voir le profil
    • E-mail
Re : la fenêtre ne réagit pas convenablement
« Réponse #3 le: Janvier 21, 2015, 02:55:36 pm »
Si tu enlèves `directionClavier` du main, je suppose que ça ne change rien ?

Vérifie à tout hasard que tu n'aies pas deux versions différentes de SFML sur ton system. Je ne vois pas ce que ça pourrait être d'autre sinon...
SFML / OS X developer

D3M0T3P

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : la fenêtre ne réagit pas convenablement
« Réponse #4 le: Janvier 21, 2015, 03:56:14 pm »
C'est fort possible j'avais en effet essayé d'installer la 2.1 mais sans succès. je fais comment pour nettoyer mon système de toutes traces de la 2.1 ? Car lorsque j'ai mis les fichiers de la 2.2 j'ai fait "remplacer" lorsque on m'a dit "un fichier du même nom existe déjà"

Hiura

  • SFML Team
  • Hero Member
  • *****
  • Messages: 4321
    • Voir le profil
    • E-mail
Re : la fenêtre ne réagit pas convenablement
« Réponse #5 le: Janvier 21, 2015, 04:02:02 pm »
Essaye simplement de tout supprimer avant d'installer. Regarde le tuto pour 2.2, les chemins sont les mêmes /Library/Frameworks, /usr/local/include et /usr/local/lib sont les principaux de tête).
SFML / OS X developer

D3M0T3P

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : la fenêtre ne réagit pas convenablement
« Réponse #6 le: Janvier 21, 2015, 08:38:03 pm »
En effet dans usr/local/lib il y avait des fichiers de la SFML 2.1 j'ai testé et tous marche. Merci je n'aurait jamais trouvé sans ton aide. ;) Gros gros merci et à bientôt.