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

31
Général / Re : Objet invisible
« le: Janvier 01, 2014, 04:56:34 pm »
Merci beaucoup pour ton aide, je savais que ca allait etre un erreur bête :p

32
Général / Objet invisible
« le: Janvier 01, 2014, 11:41:33 am »
Bonjour tout le monde,
J'ai un problème avec un sf::rectangleshape qui n'apparaît pas à l'écran. Vous allez me dire "T'as oublié le draw" mais non, d'ailleurs je le fais d'une façon un peu sale qui consiste à appeler directement un pointeur vers la fenêtre principale. Allez voila le code:

//Avant tout, la position de leftdoor est -500,0 et rightDoor 1000,0
else if(une condition que j ai vérifiée: elle marche)
        {//Boucle while : tout le reste est censé rester immobile
                while(leftDoor->getPosition().x < 0.f) //BAhaha c'est sale! Je sais merci.
                {
                        leftDoor->move(1000.f * Var.deltaTime , 0.f); //leftDoor est un RSPrite, taille 500x600, et Var.toWindow est un sf::renderwindow* de taille 1000x600
                        rightDoor->move(-1000.f * Var.deltaTime, 0.f); //rightDoor idem: 500x600

                        Var.toWindow->clear(); //Var.toWindow est un pointeur global qui pointe vers l'unique fenetre de l'application
                        Var.toWindow->draw(*leftDoor); //la fonction draw arrive
                        Var.toWindow->draw(*rightDoor);

                        std::cerr << leftDoor->getPosition().x << "  " << leftDoor->getPosition().y << std::endl;
                }
                leftDoor->setPosition(0,0);
                rightDoor->setPosition(500,0);
//D'autres trucs encore
        }
 
voila pour mon fichier Menu.cpp

Pour que vous puissiez comprendre je vous met mon RSprite.hpp
#pragma once

#include <SFML/Graphics.hpp>
#include <iostream>

class RSprite : public sf::Drawable
{
public:
        RSprite(const std::string&, const float& width, const float &height);
        //Des methodes
        virtual void draw(sf::RenderTarget &target, sf::RenderStates states) const
        {
                target.draw(*m_Rshape);
        }

private:
        sf::RectangleShape *m_Rshape;
        sf::Texture *m_texture;
};
 

Ce a quoi je m'attendais c'était que leftdoor vienne de la gauche et move jusu'a couvrir la moitié de l'écran et idem pour rightDoor.
Ce qui se passe, c'est que lorsque la condition est effectuée, tout se freeze le temps que les doors arrivent, mais elles, n'apparaîssent pas à l'écran  :-\

J'espere que quelqu'un pourra m'aider  :P
Merci

33
Général / Re : Objet qui se déplace tout seul
« le: Décembre 07, 2013, 12:32:09 pm »
Appeler update ne fera pas bouger mon objet, si je suis ton exemple..
Citer
En quoi ça te gène de l'appeler ailleurs ? Tu appelles bien draw alors pourquoi pas une autre ? ;)
Tout simplement parce que lorsque par exemple un perso tire 10 balles avec un shotgun, je donne la direction à ma balle, et à chaque frame, elle se déplace.. Je n'ai pas super envie à chaque fois devoir tout faire pour chaque balle une par une, je cherche juste à rendre les balles autonomes c'est tout...

34
Général / Re : Objet qui se déplace tout seul
« le: Décembre 07, 2013, 11:59:24 am »
En fait ce vce que j'aimerais faire c'est instancier un objet, et qu'il se déplace ensuite tout seul comme un grand sans avoir a dire objet.move... Alors si je le fais pas dans draw je le fais où?

35
Général / Objet qui se déplace tout seul
« le: Décembre 07, 2013, 11:28:24 am »
Bonjour tout le monde,
J'essaye en ce moment de me créer une classe Bullet qui me servira pour tous mes futurs chef d'oeuvres, et je me retrouve confronté à un petit problème. Voici le code qui me semblait idéal..
virtual void draw(sf::RenderTarget &target, sf::RenderStates states)
{
        target.draw(m_cShape);
        m_cShape.move(truc,bidule);
}

Or, le prototype est
virtual void draw(sf::RenderTarget &target, sf::RenderStates states) const
Avec const à la fin! impossible donc d'appeler move :( .
Quelqu'un aurait-il une idée pour contourner ce problème? Merci  ;)

36
Général / Re : Faire sauter un personnage
« le: Décembre 07, 2013, 11:20:35 am »
Ca m'est jamais arrivé jusque la de devoir faire ca, mais perso je pense que tu devrais utiliser la fonction sinus..
Eh oui faut quand meme faire des maths...

37
Général / Re : Key repetition
« le: Novembre 01, 2013, 03:36:26 pm »
Ok merci beaucoup ça marche dans la boucle, mais il y a quelque chose que je n'ai pas bien saisi: Pourquoi ne peut-on pas se servir de l’événement en dehors de la boucle?  :o

38
Général / Key repetition
« le: Novembre 01, 2013, 09:31:34 am »
Bonjour tout le monde,
Aujoud'hui je vais revenir sur les entiers battus avec un problème de "key repetition". J'aimerai qu'un seul évènement soit déclenché lorsqu'une touche est appuyée (et pas maintenue). Vous allez tout de suite me dire renderwindow::setKeyRepeatEnabled(false), oui, mais ça ne marche pas chez moi, allez savoir pourquoi.
Logiquement, il aurait fallu faire un truc du genre:
#include <SFML/Graphics.hpp>

int main(int argc,const char * argv[])
{
        srand((unsigned)time(NULL));
    sf::RenderWindow window(sf::VideoMode(1000, 600), "test");
        window.setKeyRepeatEnabled(false);

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
                //Main code
afunction(event);

        window.display();
    }

    return 0;
}

Mais là aucun effet la key repetition est encore présente..

Alors j'ai aussi essayé
afunction(sf::event event)
{
if(event.type == sf::Event::KeyReleased && event.key.code == sf::Keyboard::Return)
 std::cout << "blop";
}

Mais la le "blop" n'apparait a aucun moment :( .

Quelqu'un aurait-il une solution?

39
Général / Re : Retarded Visual Studio 2012
« le: Octobre 28, 2013, 09:08:11 am »
Ok j'avoue je n'ai pas entièrement recopié le prototype, mais alors pourquoi diable à chaque fois que je tape sf::Drawable dans mon code il ne me surligne que sf::Draw ?
Pour l'instant merci quand même  à vous deux pour m'avoir aidé :)

40
Général / Re : Retarded Visual Studio 2012
« le: Octobre 27, 2013, 03:26:52 pm »
Je te done mon header:

#pragma once

#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include "Namespaces.h"

class LoadingObject : public sf::Drawable
{
public:
        LoadingObject();
        void OpenDoors();
        void CloseDoors();

        bool doorsAreClosed() const;
        bool doorsAreMoving() const;
        bool doorsStillOnScreen() const;
        ~LoadingObject();

protected:
        virtual void draw(sf::RenderTarget& target) const
        {
                target.draw(*rectl);
                target.draw(*rectr);
        }
        bool doorMoving;
        bool thisExists;

        sf::RectangleShape *rectl;
        sf::RectangleShape *rectr;

        sf::Texture *rectlTex;
        sf::Texture *rectrTex;

        sf::Texture *freezeImage;
};

Puis j'ai suivi tes conseils, j'ai enlevé le sf::Drawable() de l'implémentation du constructeur mais j'ai encore exactement les mêmes erreurs..

En fait ce que j'aimerai pouvoir faitre c'est window.draw(instance de LoadingObject);

41
Général / Problème dans Visual Studio 2012
« le: Octobre 27, 2013, 09:18:55 am »
Bonjour tout le monde,
Je codais une petite app paisiblement et puis soudain VS a encore une fois décider de montrer à quel point il était insupportable. Attention ouvrez grand les yeux et préparez-vous à voir quelque chose de stupide:

LoadingObject::LoadingObject() : sf::Drawable()
{
     //Bla bla bla des trucs
}

Rien de suspect à première vue? Oui mais super Visual Studio me sort    

IntelliSense : objet de type classe abstraite "LoadingObject" non autorisé :
fonction "sf::Drawable::draw" virtuel pure n'a pas de remplaçant

Et voici MA vue sur Visual Studio :
LoadingObject::LoadingObject() : sf::Drawable()

Oui! Visual Studio confond bien sf::Draw et sf::Drawable!

Quelqu'un saurait-il comment contourner le problème?
Merci

42
Général / Re : Interdire de recevoir des keypress
« le: Octobre 27, 2013, 08:55:35 am »
Pas bête comme idée merci de ta réponse rapide ça m'a vraiment aidé  ;D

43
Général / Interdire de recevoir des keypress
« le: Octobre 25, 2013, 06:24:22 pm »
Bonjour tout le monde,
Je débute encore avec SFML et je me suis mis en tête de faire une petite application. Voici mon problème: j'ai plus ou moins :
if(ToucheEntréeAppuyée())
{
     faireUneActionQuiDure2s();
}

Alors maintenant je me suis dit oui mais si l'utilisateur décide de spammer la touche entrée, alors la tout part en cacahuète. Ce qui me semble être la bonne solution c'est une traduction de ça en C++:

if(ToucheEntréeAppuyée())
{
     ignorerLesTouchesAppuyées2s();
     faireUneActionQuiDure2s();
}


Gros edit: ou alors quelque chose comme ça:

ignorerLesEvenementsClaviers();
Des instructions...;
NePlusIgnorerLesEvenements();

Cette solution m'aiderait encore plus dans mon cas  ;D
Merci  :D

44
Général / Re : Problème sous CodeBlocks
« le: Octobre 18, 2013, 09:54:42 pm »
Ah ma faute j'avais pas vu, de toute façon j'avais essayé les 2 ça avait pas marché :p

45
Général / Re : Problème sous CodeBlocks
« le: Octobre 18, 2013, 08:36:57 pm »
Essaye d'insérer sfml-main on sait jamais, et aussi j'ai du EXACTEMENT le même problème et j'ai donc dû passer sous Visual Studio 2012 pour que ça marche :(