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

Pages: [1]
1
Graphique / Re : [Résolu] Utilisation mathématique de SFML
« le: Janvier 19, 2015, 10:45:52 pm »
Bonjour,

Je suis désolé de rééditer ce topic mais du coup, étant confronté au même problème, j'aimerais savoir comment tu as fait pour tracer des fonctions car j'aimerais tracer des courbes de Bézier si c'est faisable.

Cordialement,
Eldoir

2
Graphique / Re : Animation qui s'accélère (ce que je ne veux pas)
« le: Décembre 09, 2014, 10:38:51 pm »
Ah oui suis-je bête, 1 ligne et c'est corrigé pff ^^

Merci bien !

3
Graphique / [Résolu] Animation qui s'accélère (ce que je ne veux pas)
« le: Décembre 09, 2014, 05:47:04 am »
Bonsoir,

J'ai inclus ceci dans mon projet afin de faire tourner des animations basiques ->https://github.com/SFML/SFML/wiki/Source:-AnimatedSprite

Voici donc mon main :

#include "AnimatedSprite.hpp"

using namespace std;
using namespace sf;

int main() {
   
    srand((int)time(NULL));
   
    int current_drop = 0;
    float drop[] = {5.5, 10.3, 11.3, 19.9, 26.7, 27.7, 35.8, 37.9, 43.3, 48.0};
   
    VideoMode screen = VideoMode::getDesktopMode();
   
    ContextSettings settings;
    settings.antialiasingLevel = 8;
   
    RenderWindow window(VideoMode(SCREEN_WIDTH, SCREEN_HEIGHT), "DAREDEWILL", Style::Default, settings);
    window.setFramerateLimit(60);
    // On centre la fenêtre sur l'écran quelle que soit sa taille
    window.setPosition(Vector2i((screen.width-SCREEN_WIDTH)/2, (screen.height-SCREEN_HEIGHT)/2));

    Texture dropTexture;
    if (!dropTexture.loadFromFile("img/drop.png")) {
        cerr << "Impossible de charger l'animation drop.png !" << endl;
        return EXIT_FAILURE;
    }
   
    Animation dropAnim;
    dropAnim.setSpriteSheet(dropTexture);
    dropAnim.addFrame(IntRect(0, 0, 34, 34));
    dropAnim.addFrame(IntRect(34, 0, 34, 34));
    dropAnim.addFrame(IntRect(68, 0, 34, 34));
    dropAnim.addFrame(IntRect(102, 0, 34, 34));
   
    Animation* currentAnimation = &dropAnim;
   
    AnimatedSprite animatedDrop(sf::seconds(25), false, false);
   
    Clock clock;
    Time currentTime;
   
    while (window.isOpen()) {
       
        currentTime = clock.getElapsedTime();
       
        Event event;
       
        while (window.pollEvent(event)) {
           
            if(event.type == Event::Closed) {
                window.close();
            } else if (event.type == Event::KeyPressed) {
               
                switch(event.key.code) {
                    case Keyboard::Escape: window.close();
                        break;
                    default:
                        break;
                }
            }
        }
       
       
        if (current_drop < 10 && currentTime.asSeconds() > drop[current_drop]) {
            animatedDrop.setPosition(sf::Vector2f(rand()%SCREEN_WIDTH, rand()%SCREEN_HEIGHT));
            animatedDrop.play(*currentAnimation);
            current_drop++;
        }
       
        window.clear(Color::Black);
       
        animatedDrop.update(currentTime);
       
        window.draw(animatedDrop);

        window.display();
    }
   
    return EXIT_SUCCESS;
}
 

Le but est de jouer une animation à un moment précis (ces moments sont stockés dans un tableau au début du main et correspondent à des secondes, si vous avez une meilleure implémentation à proposer je suis preneur ^^ )

Le truc, c'est que mon animation s'accélère à chaque fois que je la play...

De plus, je ne comprends pas pourquoi même si je précise 25 secondes entre chaque frame lorsque je l'instancie,  elle est en réalité beaucoup plus rapide (moins d'une seconde) !

J'ai beau lire le code le code Laurent Gomila dans AnimatedSprite.cpp, je ne vois pas où ça pèche...

Quelqu'un aurait-il une idée ? Merci d'avance ;)

P.S : J'ai sinon entendu dire que Thor serait une meilleure solution pour les animations, mais si je comprends bien, étant avec SFML 2.1 je ne peux pas me servir de la dernière version de Thor qui est la 2.0, je dois me contenter de la 1.1 qui est assez vieille donc ça m'embête un peu...

4
Graphique / Re : sf::Text ne se draw pas ?
« le: Décembre 07, 2014, 05:19:32 am »
Effectivement, bien joué ! Merci beaucoup ^^

5
Graphique / [Résolu] sf::Text ne se draw pas ?
« le: Décembre 07, 2014, 01:53:47 am »
Bonsoir tout le monde,
Je voulais implémenter un petit truc tout bête qui pourtant ne marche pas :
Je veux pouvoir contrôler le fade-in/out de mes textes, autrement dit je veux que leur composante alpha augmente doucement à la création du texte, puis qu'au bout d'un certain temps elle diminue jusqu'à atteindre de nouveau zéro.
Je le fais déjà avec un texte simple. Mais le procédé est assez lourd, je voudrais donc pouvoir encapsuler cette technique dans une classe que j'appellerais MyText.
Et bien, rien ne marche : Faire que MyText hérite de sf::Text, ou même simplement faire que MyText utilise en variable privée un sf::Text, rien ne plante mais le texte n'a pas l'air de se dessiner ! J'ai vérifié les valeurs des champs du texte, elles  sont pourtant correctement assignées. Qu'est-ce qui ne va pas ?

Merci d'avance de votre réponse :)
Voici un bout de code :

MyText.h :

#ifndef MYTEXT_H
#define MYTEXT_H

#include "" // tout ce qu'il faut pour que le prog marche, je ne vais pas en faire la liste...

class MyText : public sf::Text {

    public:
        MyText(sf::Font, std::string, int, sf::Vector2f, sf::Color);
};

#endif
 

MyText.cpp :

#include "MyText.h"

using namespace std;
using namespace sf;

MyText::MyText(Font font, string str, int size, Vector2f pos, Color col)
  : Text()
{
    setFont(font);
    setString(str);
    setCharacterSize(size);
    setPosition(pos.x-getGlobalBounds().width/2, pos.y-getGlobalBounds().height/2);
    setColor(col);
}
 

Et dans mon main.cpp, je crée le texte comme ceci avant la boucle principale :

MyText text (font, "Coucou", 24, Vector2f(0, 0), Color::white);
 

Et je le draw simplement comme ceci à la fin de ma boucle principale :

App.draw(text);
 

Tout le reste de mon programme fonctionne bien, donc c'est pas un truc à la con genre j'ai mis le draw avant le clear ou un truc du genre...

Si vous avez une idée :)

(P.S : j'ai fait pas mal de changements dans mes fichiers, donc en fait ce que je viens de vous écrire comme code je ne l'ai pas testé je l'ai écrit de mémoire, donc pardonnez les fautes à la compil s'il y en a ^^)

Pages: [1]
anything