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

16
Général / Re : Boite de dialogue simple
« le: Avril 27, 2014, 08:52:17 pm »
Merci pour tes conseils je vais changer ça tout de suite  :)

17
Général / Boite de dialogue simple
« le: Avril 27, 2014, 06:30:08 pm »
Bonjour tout le monde,
J'ai vite fait essayé de créer une simple boite de dialogue si on peut appeler ca, faite d'un sf::rectangleshape et d'un sf::shape.
Le but est donc de draw la shape puis le texte.
En gros, je m'y suis pris comme ca:
class fenetre : public rectangleshape
{
public:
fenetre(){m_texte.setString("Hello world"); setfillcolor(); setposition() etc etc};

        virtual unsigned int getPointCount() const
        {
                return getPointCount();
        }
        virtual sf::Vector2f getPoint (unsigned int index) const
        {
                return getPoint(index);
        }

private:
sf::Text m_text;
}
 

C'est là que mes deux questions interviennent.
1) Est-ce qu j'hérite de la bonne classe? (sf::Drawable n'est il pas mieux?)
2)Si oui, où j'affiche le texte?

Aussi j'ai essayé d'implémenter draw dans cette classe avec les deux autres fonctions virtuelles, en faisant:
target.draw(*this);
target.draw(m_text);

mais au niveau du draw (this) j'ai un stack overflow et donc je pense que c'est pas la bonne voie.
Merci pour vos réponses  :D

18
Général / Re : Comment faire des collisions propres?
« le: Avril 27, 2014, 03:28:05 pm »
En fait j'utilise pas un tilemap je fais pas un rpg si tu veux c'est plus un shoot em up et donc par exemple si je tire 30 balles à l'écran, et il y a 1 ennemi, il va falloir qu'à chaque frame toutes les 30 balles vérifient la collision avec tous les ennemis? ça veut dire que si ya 2 ennemis ca prend 2 fois plus de temps etc..
je me posais juste la question de savoir si y'avait une methode plus simple.
Merci pour ta réponse rapide  ;D

19
Général / Comment faire des collisions propres?
« le: Avril 27, 2014, 03:11:21 pm »
Bonjour tout le monde,
je suis en plein dans un petit projet et je me retrouve face à un problème: je dois gérer PLEIN de collisions. Alors vous me direz c'est tout simple il faut utiliser contains(arg) et le tour est joué, oui mais alors ca veut dire que, à chaque frame, je dois re-calculer toutes les collisions possibles entre tous les objets à l'écran?  ???
Je pense pas que ce soit très propre et j'imagine pas les performances pourries que je vais avoir avec ça..
Donc ma question c'est: C'est quoi la structure ou le truc, pour faire des collisions bien comme il faut?
Merci  ;)

20
Général / Re : XML or not XML ?
« le: Avril 27, 2014, 03:05:37 pm »
Personellement j'ai essayé de trouver une librairie qui permettait de faire ça super facilement et rapidement et je suis revenu bredouille.. J'ai fini par écrire mon propre parser qui marche niquel  ;D

21
Graphique / Re : Comment retrouver la position d'un point?
« le: Avril 14, 2014, 09:19:50 am »
Merci beaucoup Laurent  ;D Je suis surpris que tu répondes aussi vite, sérieusement tu gères  8)

22
Graphique / [Résolu]Comment retrouver la position d'un point?
« le: Avril 14, 2014, 09:10:37 am »
Bonjour tout le monde,
Comme ça ça a l'air facile de retrouver la position absolue d'un point, mais comment faire pour trouver la position absolue d'un point d'une shape?
getPoint ne renvoie que des valeurs relatives à la shape
Par exemple
sf::Rectangleshape x;
x.setPosition(100,100);
x.setSize(200, 100);
std::cout << x.getPoint(1).x; //J'ai pas compilé mais normalement ca renvoie 200
//car le point est éloigné de 100px du point 0
//comment faire pour trouver la position absolue? (300)
 
Merci

23
Général / Re : ConvexShape ne prends pas les couleurs
« le: Janvier 09, 2014, 07:34:28 pm »
OK je viens de remplacer m_shape par m_pointcount et un vector de sf::vector2f appelé m_points et ça marche niquel  ;D
Merci de m'avoir aidé à optimiser ma classe

24
Général / sf::sprite et sf::rectangleShape
« le: Janvier 09, 2014, 06:02:28 pm »
Bonjour tout le monde,
J'ai juste une toute petite question idiote qui m'est venue comme ça par hasard dans la journée, c'est plutôt une question de débutant qui tatonne, quelle est la différence entre un sf::sprite et un sf::rectangleShape, étant donné qu'on peut leur appliquer une sf::texture?
Le résultat attendu sera le même, et les principales méthodes resteront disponibles dans les deux cas non?  :o
Merci pour toutes vos réponses

25
Général / Re : ConvexShape ne prends pas les couleurs
« le: Janvier 09, 2014, 05:57:00 pm »
Je voudrais bien hériter de sf::shape, mais si je fais ça, comme je l'ai dit plus tot, les couleurs ne s'appliquent pas  :o . Ca , c'est sûrement une erreur de ma part mais comme ça marche comme ça pour l'instant je touche a rien  ;D

26
Général / [Résolu]ConvexShape ne prends pas les couleurs
« le: Janvier 06, 2014, 07:38:10 pm »
Merci beaucoup ça marche si ma classe hérite de sf::Drawable  :D

27
Général / ConvexShape ne prends pas les couleurs
« le: Janvier 05, 2014, 06:03:03 pm »
Bonjour tout le monde,
J'ai récemment fait une classe de rectangle arrondi, et j'aimerai lui donner des couleurs.
J'ai donc fait un code basique, assez simple..
Main.cpp
int main() //évidemment j'ai réduit mon code la
{
RoundRect * rect2= new RoundRect(sf::Vector2f(10.f,230.f), sf::Vector2f(300.f,50.f), 20, 5,sf::Color::Yellow, sf::Color::Cyan, 3);
RoundRect * rect = new RoundRect(sf::Vector2f(10.F,10.f), sf::Vector2f(200.f, 200.f), 10.f, 10, sf::Color::Green, sf::Color::Blue, 2);

window.clear();
window.draw(*rect);
window.draw(*rect2);
window.display();
return 0;
}
 

RoundRect.hpp
class RoundRect : public sf::Shape
{
public:
         RoundRect(const sf::Vector2f& position, const sf::Vector2f& dimensions,const float& borderRadius, const int unsigned& pointCount, const sf::Color& fillcolor, const sf::Color& outColor, const float& outThickness);
        ~RoundRect();

        virtual unsigned int getPointCount() const
        {
                return m_shape.getPointCount();
        }
        virtual sf::Vector2f getPoint (unsigned int index) const
        {
                return m_shape.getPoint(index);
        }

private:
        sf::ConvexShape m_shape;
};
 

Et pour finir, le .cpp
RoundRect::RoundRect(const sf::Vector2f& position, const sf::Vector2f& dimensions,const float& borderRadius,  const int unsigned& pointCount, const sf::Color& fillcolor, const sf::Color& outColor, const float& outThickness)
{
        //Un gros constructeur
        m_shape.setOutlineThickness(outThickness);
        m_shape.setFillColor(fillcolor);
        m_shape.setOutlineColor(outColor);
        update();
}
 

Mais, mes "rectangles" restent blancs  :-[ . Pourtant, j'ai bien des formes convexes..
Si quelqu'un aurait une idée ça serait sympa de la poster  ;D

28
Général / Re : Problème de points avec convexShape
« le: Janvier 05, 2014, 12:27:26 pm »
Trop tard j'ai trouvé  ;D si quelqu'un est interressé par une classe RoundRect, ajoutez vous meme les couleurs!
RoundRect::RoundRect(const sf::Vector2f& position, const sf::Vector2f& dimensions,const float& borderRadius,  const int unsigned& pointCount)
{
        unsigned int i;
        m_shape.setPointCount(pointCount*4);
        for(i=0;i<pointCount;++i) //ANGLE 1
        {
                m_shape.setPoint(i, sf::Vector2f(position.x +borderRadius - borderRadius*std::cosf((i*PI)/((pointCount-1)*2)),position.y +borderRadius - borderRadius*std::sinf((i*PI)/((pointCount-1)*2))));
                //std::cout << "PosX of point " << i << ": " << m_shape.getPoint(i).x << std::endl;
                //std::cout << "PosY of point " << i << ": " << m_shape.getPoint(i).y << std::endl;
        }
        for(i=0;i<pointCount;++i)
        {
                m_shape.setPoint(i+pointCount, sf::Vector2f(position.x -borderRadius+ dimensions.x + borderRadius*std::sinf((i*PI)/((pointCount-1)*2)),position.y +borderRadius- borderRadius*std::cosf((i*PI)/((pointCount-1)*2))));
                //std::cout << "PosX of point " << i+pointCount << ": " << m_shape.getPoint(i+pointCount).x << std::endl;
                //std::cout << "PosY of point " << i+pointCount << ": " << m_shape.getPoint(i+pointCount).y << std::endl;
        }
        for(i=0;i<pointCount;++i)
        {//was with sin sin
                m_shape.setPoint(i+pointCount*2, sf::Vector2f(position.x + dimensions.x -borderRadius+ borderRadius*std::cosf((i*PI)/((pointCount-1)*2)),position.y + dimensions.y - borderRadius + borderRadius*std::sinf((i*PI)/((pointCount-1)*2))));//Both cos used to be sin
                //std::cout << "PosX of point " << i+pointCount*2 << ": " << m_shape.getPoint(i+pointCount*2).x << std::endl;
                //std::cout << "PosY of point " << i+pointCount*2 << ": " << m_shape.getPoint(i+pointCount*2).y << std::endl;
        }
        for(i=0;i<pointCount;++i)
        {
                m_shape.setPoint(i+pointCount*3, sf::Vector2f(position.x + borderRadius - borderRadius*std::sinf((i*PI)/((pointCount-1)*2)), position.y -borderRadius+ dimensions.y + borderRadius*std::cosf((i*PI)/((pointCount-1)*2))));
                //std::cout << "PosX of point " << i+pointCount*3 << ": " << m_shape.getPoint(i+pointCount*3).x << std::endl;
                //std::cout << "PosY of point " << i+pointCount*3 << ": " << m_shape.getPoint(i+pointCount*3).y << std::endl;
        }
        update();
}
 

29
Général / Re : Problème de points avec conexShape
« le: Janvier 04, 2014, 04:44:22 pm »
J'ai implementé cela dans Thor, peut-être la fonction roundedRect() peut t'aider? :)
Ouais ca pourrait m'aider, mais le truc c'est que je suis pas super fort en programmation et tout et si j'espere faire un programme complet un jour je préfererai tout faire moi meme et pouvoir dire "c'est moi qui l'ai fait" plutot que "j'ai tout trouvé sur internet" et aussi (surtout) j'ai pas la foi d'installer des tonnes de librairies..
Merci tout de meme pour la suggestion  :D

30
Général / Problème de points avec convexShape
« le: Janvier 04, 2014, 01:58:28 pm »
Bonjour tout le monde,
Je rencontre un problème avec ConvexShape, mais je suis quasiment certain que c'est de ma faute..
J'essaye de faire un rectangle arrondi mais le résulat ne suit pas  :-[ j'ai qulques points qui se trouvent a des endroits improbables( voir la piece jointe ) j'ai entouré, pour un coin, deux points qui ne sont meme pas listé dans ma shape et tracé en vert la forme qu'elle devrait normalement avoir.
Evidemment vous ne pourrez pas m’aider sans code:
C'est long, mais la moitié c'est du "debug"  ;)
RoundRect::RoundRect(const sf::Vector2f& position, const sf::Vector2f& dimensions,const float& borderRadius,  const int unsigned& pointCount)
{
        unsigned int i;
        m_shape.setPointCount(pointCount*4); // m_shape est un sf::conexshape
        for(i=0;i<pointCount;++i) //ANGLE 1
        {
                m_shape.setPoint(i, sf::Vector2f(position.x - borderRadius*std::sinf((i*PI)/((pointCount-1)*2)),position.y - borderRadius*std::cosf((i*PI)/((pointCount-1)*2))));
                std::cout << "PosX du point " << i << ": " << m_shape.getPoint(i).x << std::endl;
                std::cout << "PosY du point " << i << ": " << m_shape.getPoint(i).y << std::endl;
        }
        for(i=pointCount; i<pointCount*2; i++)
        {
                m_shape.setPoint(i, sf::Vector2f(position.x + dimensions.x + borderRadius - borderRadius*std::cosf((i*PI)/((pointCount-1)*2)),position.y - borderRadius*std::sinf((i*PI)/((pointCount-1)*2))));
                std::cout << "PosX du point " << i << ": " << m_shape.getPoint(i).x << std::endl;
                std::cout << "PosY du point " << i << ": " << m_shape.getPoint(i).y << std::endl;
        }
        for(i=pointCount*2; i<pointCount*3; i++)
        {
                m_shape.setPoint(i, sf::Vector2f(position.x + dimensions.x - borderRadius*std::sinf((i*PI)/((pointCount-1)*2)),position.y + dimensions.y - borderRadius + borderRadius*std::sinf((i*PI)/((pointCount-1)*2))));
                std::cout << "PosX du point " << i << ": " << m_shape.getPoint(i).x << std::endl;
                std::cout << "PosY du point " << i << ": " << m_shape.getPoint(i).y << std::endl;
        }
        for(i=pointCount*3; i<pointCount*4; i++)
        {
                m_shape.setPoint(i, sf::Vector2f(position.x + borderRadius - borderRadius*std::sinf((i*PI)/((pointCount-1)*2)), position.y + dimensions.y - borderRadius*std::sinf((i*PI)/((pointCount-1)*2))));
                std::cout << "PosX du point " << i << ": " << m_shape.getPoint(i).x << std::endl;
                std::cout << "PosY du point " << i << ": " << m_shape.getPoint(i).y << std::endl;
        }
        update();
}
 
Est-ce que quelqu'un sait d'où ca vient  :o
Merci

anything