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.