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

Pages: [1]
1
Graphique / Re : Animation SFML en C++
« le: Novembre 27, 2016, 06:35:03 pm »
Merci beaucoup, pour tes réponses, une réponse par jour c'est assez long :P je rigole bien sur, ça valait le temps d'attendre. Et si Laurent ça résout totalement mon problème, merci quand même !

2
Graphique / Re : Animation SFML en C++
« le: Novembre 26, 2016, 08:44:18 pm »
Mais je suis vraiment *** ! C'était ça l'erreur, merci infiniment !  ;)
Et tu as tout à fait raison, donc si j'ai bien compris, il  ne faut pas mettre isKeyPressed, ou pas dans la boucle principale en tout cas ? Mais je le met ou dans ce cas la ?

3
Graphique / Re : Animation SFML en C++
« le: Novembre 26, 2016, 12:06:16 pm »
Merci de ta réponse ! J'ai poster le même poste sur un autre forum il y a 17h, tu es le seul à m'avoir répondu.
Pour w, oui c'est la largeur d'une seul image, sachant que la position fixe est plus petite car quand mon personnage cours il se penche, et donc prend de la largeur, voici l'image :
http://zupimages.net/viewer.php?id=16/47/ubeo.png

4
Graphique / Animation SFML en C++
« le: Novembre 26, 2016, 10:18:23 am »
Bonsoir, je suis actuellement entrain de coder un jeu en C++ avec SFML. J'ai un personnage (Sprite ninja), avec une animation, pour choisir l’animation. J'utilise une image avec étage 1 : Position fixe ; étage 2 : Courir.

Mais j'ai un problème, au lieu de m'afficher un carré de l'image et de changer d'image très rapidement, l'image défile de gauche à droite, je ne comprend pas pourquoi, voila le code : ( animation ligne 49 )

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <SFML/Graphics.hpp>

using namespace std;
using namespace sf;

int main()
{
        // Création d'une fenêtre en SFML //
        RenderWindow window(VideoMode(800, 480, 32), "app");
        window.setFramerateLimit(60);
        window.setVerticalSyncEnabled(true);

        // Création des sprites //
        Texture backgroundTexture;
        Sprite background;
        Texture ninjaTexture;
        Sprite ninja;

        // Chargement des textures //
        if (!ninjaTexture.loadFromFile("graphics/ninja/final.png"))
        {
                cout << "Erreur durant le chargement de l'image de background." << endl;
        }
        else
        {
                ninja.setTexture(ninjaTexture);
                ninja.scale(0.3f, 0.3f);
                ninja.setPosition(300, 377);
        }

        if (!backgroundTexture.loadFromFile("graphics/background.png"))
        {
                cout << "Erreur durant le chargement de l'image de background." << endl;
        }
        else
        {
                background.setTexture(backgroundTexture);
                background.scale(0.5f, 0.5f);
        }

        // Animations //

        int frameTimer(4), frameNumber(0), frameMax(10), direction(0), w(363), h(329), etat(0);

        // Boucle principale du jeu //

        while (window.isOpen())
        {
                sf::Event event;
                while (window.pollEvent(event))
                {
                        if (event.type == sf::Event::Closed)
                                window.close();

                        if (sf::Keyboard::isKeyPressed(sf::Keyboard::D))
                        {
                                etat = 1;
                                direction = 0;
                                w = (363);
                                h = (329);
                                ninja.move(4, 0);
                        }
                        else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Q))
                        {
                                etat = 1;
                                direction = 1;
                                w = (363);
                                h = (329);
                                ninja.move(-4, 0);
                        }
                        else if (!sf::Keyboard::isKeyPressed(sf::Keyboard::D) && !sf::Keyboard::isKeyPressed(sf::Keyboard::Q))
                        {
                                etat = 0;
                                w = (232);
                                h = (329);
                        }
                }

                // Animations //
                if (frameTimer <= 0)
                {
                        frameTimer = 4;
                        frameNumber++;
                        if (frameNumber >= frameMax)
                        {
                                frameNumber = 0;
                        }
                }
                else
                {
                        frameTimer--;
                }
                if (direction == 1)
                {
                        ninja.setTextureRect(sf::IntRect(frameNumber * w, etat * h, -w, h));
                }
                else
                {
                        ninja.setTextureRect(sf::IntRect(frameNumber * w, etat * h, w, h));
                }

                // Affichage //
                window.clear();
                window.draw(background);
                window.draw(ninja);
                window.display();
        }

        // Fin //
        return 0;

}

Quelqu'un aurait t'il une piste pour m'aider à résoudre le problème ?

Merci d'avance.

Pages: [1]