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

Pages: « Précédente 1 ... 6 7 [8] 9 10 ... 12 Suivante »
106
Fenêtrage / Re : Fenêtre et sf::NonCopyable
« le: Juin 02, 2013, 07:22:13 pm »
Désolé de relever ce sujet, mais j'ai trouvé bête d'en refaire un nouveau pour traiter de la même chose...

Je viens de voir sur un projet open source qu'il passait sa RenderWindow en variable globale, je pense que c'est une solution assez simple :)
Donc ducoup pas de pointeurs ni de réferences :)
Parce que les pointeurs peuvent mener aux erreurs et les références faut en mettre beaucoup et cela devient rapidement lourd...

107
Réseau / Re : Message d'envoi
« le: Juin 02, 2013, 06:29:27 pm »
Okay merci beaucoup :)

108
Réseau / Re : Message d'envoi
« le: Juin 01, 2013, 01:36:52 am »
Aussi, serait-il possible d'avoir une boucle d'exemple d'un jeu en réseau ?

Ce que j'aimerais savoir c'est comment intégrer ça dans un "jeu" ?

while(window.isOpen())
{
    while(window.pollEvent(event))
    {
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
        {
            sprite.move(0, -1);
        }
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
        {
            sprite.move(1, 0);
        }
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
        {
            sprite.move(0, 1);
        }
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
        {
            sprite.move(-1, 0);
        }
        window.clear();
        window.draw(sprite);
        window.display();
    }
}

En gros ici c'est une boucle "classique" de jeu offline, où je rajoute mes fonctions de réseau ?
Je rajoute une condition if(socket.send(....)) dans ma boucle ou autres ... ?
Et je dois update les autres joueurs donc j'ajoute un if(socket.receive(...)) ?

Merci d'avance pour ces deux petites réponses :)

109
Réseau / Message d'envoi
« le: Juin 01, 2013, 12:01:21 am »
Bonjour,

J'avais créer ce topic, résolu le problème, mais finalement un nouveau est apparu :

Quand j'envoit des strings en UDP côté client, le serveur les capte mal,
Exemple j'envoit : azerty
Le serveur recoit : azerxu
Il n'affiche que les 4 premières lettres et remplace le reste par xu...

Voici mon code envoit client et reception serveur :

Client :
std::getline(std::cin, msg); //msg est de type std::string
if (socket.send(msg.c_str(), sizeof(msg.c_str()), server, port) != sf::Socket::Done)
    return;
std::cout << "Client :" << msg << std::endl;
 

Serveur :
if (socket.receive(in, sizeof(in), received, sender, senderPort) != sf::Socket::Done) //in est le char in[] de l'exemple
    return;
std::cout << "Client :" << in << std::endl;

Je pense que le pb vient du fait du string/char[], mais je suis pas sur....

110
Graphique / Re : RenderTexture et/ou VertexArray
« le: Mai 28, 2013, 10:03:39 pm »
Okay merci :)

111
Graphique / Re : RenderTexture et/ou VertexArray
« le: Mai 28, 2013, 09:25:31 pm »
En fait j'ai pas trop précisé mes questions je pense...

1 - Je connais le fonctionnement d'une RTT, mais je demande juste lequel moyen est le plus efficace

2 - Possible d'avoir une valeur approchée ? Et pour les VertexArray ?

3 - Je sais ici aussi que les VertexArray ne se chargent qu'une seule fois "en gros", mais je veux savoir si je crée tout le terrain de mon jeu sans problème, ou que je dois faire petit à petit ?

112
Graphique / RenderTexture et/ou VertexArray
« le: Mai 28, 2013, 06:37:53 pm »
Bonjour,

Je cherche un créer un algorithme de tilemapping, je connais vite fait les bases, c'est-à-dire View, Scrolling, Collision, Gestion d'un fichier de map, etc...

Mais j'ai quelques questions... :

1 - Pour afficher ma map, je dois mieux utiliser des RenderTexture ou des VertexArray ?
(Ou pourquoi pas des VertexArray de RenderTexture ?)

2 - Il y a-t-il une taille recommandée et maximale pour ces objets ?

3 - Quand je charge ma map, je charge tout d'un coup et je ne planterai pas car tout n'est pas afficher, ou je déclare petit à petit ? Je sais qu'une différence aura lieu lors du chargement, mais finalement vaut mieux perdre un peu de temps de chargement au début et pas buger dans le jeu

Enfin bref, merci d'avance ;)

113
Graphique / Re : [SFML 2.0] Shooting projectiles
« le: Mai 27, 2013, 05:25:44 pm »
Tu dois tester ajouter à chaque projectile un sf::Rect<T> qui contient le rectangle qui englobe ton sprite.
Ensuite tu testes avec la méthode intersect des sf::Rect<T>

Voilà pour les collisions, ensuite pour l'angle il te faut donc l'angle du vaisseau, et tu donnes cet angle aux projectiles, et je te conseil d'utiliser le cercle trigonométrique, donc tu crée un Vector2 contenant des valeures comprises entre -1 et 1 pour x et y qui corresponde ;)
Si tu ne sais pas ce qu'est le cercle trigonométrique (Etude<1ère), Google est ton ami ;)

114
Fenêtrage / Fenêtre et sf::NonCopyable
« le: Mai 25, 2013, 06:56:02 pm »
Bonjour,

j'aimerais utiliser une sf::RenderWindow dans une classe alors que celle-ci soit crée ailleurs.

Voici ce que je voudrais faire :

Application.cpp
Application::Application(sf::RenderWindow window) : m_window(window)
{

}

Si vous avez un autre moyen, j'ai pensé aux pointeurs mais je ne sais pas si cela va marcher aussi ...
Sinon je peux mettre des sf::RenderWindow& window mais ducoup faut que je le mette à pas mal de fonctions...

115
Wiki SFML / Re : Tutoriel en vidéo
« le: Mai 25, 2013, 06:52:09 pm »
Bah celui que je prends en exemple, c'est justement pas du code pur, c'est une explication des systèmes et des différentes techniques de mises en place.
Après c'est vrai que les autres c'est du code pur, mais je pense que par exemple il y a moyen d'expliquer rapidement les différentes techniques en vidéo sans donner trop de code, car je suis d'accord, quand tu vois trop de code en vidéo c'est chiant, autant le lire directement :)

116
Général / Re : Des boutons avec sf::IntRect
« le: Mai 24, 2013, 07:10:17 pm »
Merci, le fait de m'aider ne me dégoute pas du tout, si je poste le but c'est justement de pouvoir être amélioré au maximum.
Je suis encore en première S donc j'ai pas encore fini de voir tout ce qui est fonction du genre Polynôme.

En attendant, voilà ma classe RoundRect ! (elle, elle marche correctement !)

RoundRect.hpp
#ifndef SFML_ROUNDRECT_HPP
#define SFML_ROUNDRECT_HPP

#include <SFML/System/Vector2.hpp>
#include <SFML/Graphics/Rect.hpp>
#include <SFML/Graphics/Ovale.hpp> //je mets ca même si c'est pas le vrai chemin :)

namespace sf
{
template <typename T>
class RoundRect : public Ovale, public Rect
{
public :
    RoundRect();
    RoundRect(T leftX, T topY, T diamX, T diamY, T rad = 0);
    RoundRect(const Vector2<T>& position, const Vector2<T>& size, T rad = 0);

    bool contains(T x, T y) const;
    bool contains(const Vector2<T>& point) const;

    T left;
    T top;
    T width;
    T height;
    T radius;
};

#include <SFML/Graphics/Ovale.inl>

typedef RoundRect<int> IntRoundRect;
typedef RoundRect<float> FloatRoundRect;

} // namespace sf


#endif // SFML_ROUNDRECT_HPP
 

RoundRect.inl

////////////////////////////////////////////////////////////
template <typename T>
RoundRect<T>::RoundRect() :
left(0),
top(0),
width(0),
height(0),
radius(0)
{

}

////////////////////////////////////////////////////////////
template <typename T>
RoundRect<T>::RoundRect(T leftX, T topY, T diamX, T diamY, T rad) :
left(leftX),
top(topY),
width(diamX),
height(diamY),
radius(rad)
{

}

////////////////////////////////////////////////////////////
template <typename T>
RoundRect<T>::RoundRect(const Vector2<T>& position, const Vector2<T>& size, T rad) :
left(position.x),
top(position.y),
width(size.x),
height(size.y),
radius(rad)
{

}

////////////////////////////////////////////////////////////
template <typename T>
bool RoundRect<T>::contains(T x, T y) const
{
    Ovale<T> leftTop(left,top,radius,radius);
    Ovale<T> leftBottom(left,top+height-radius*2,radius,radius);
    Ovale<T> rightTop(left+width-radius*2,top,radius,radius);
    Ovale<T> rightBottom(left+width-radius*2,top+height-radius*2,radius,radius);

    Rect<T> bloc1(left+radius,top,width-radius*2,height);
    Rect<T> bloc2(left,top+radius,width,height-radius*2);
    if(leftTop.contains(x,y)==true || leftBottom.contains(x,y)==true || rightTop.contains(x,y)==true || rightBottom.contains(x,y)==true || bloc1.contains(x,y)==true || bloc2.contains(x,y)==true)
    {
        return true;
    }
    else return false;
}

////////////////////////////////////////////////////////////
template <typename T>
bool RoundRect<T>::contains(const Vector2<T>& point) const
{
    return contains(point.x, point.y);
}
 

117
Général / Re : Des boutons avec sf::IntRect
« le: Mai 24, 2013, 06:08:33 pm »
Ducoup, je peux juste rajouter mes fichiers dans les sources que j'ai téléchargé et ensuite en compilant SFML avec CMake j'aurais ma classe ?
Ou il y a d'autres choses à faire avant ?

118
Général / Re : Des boutons avec sf::IntRect
« le: Mai 24, 2013, 05:32:19 pm »
J'ai fini la méthode contains !

Je pense continuer à travailler sur les Boutons et autres pour SFML, c'était vraiment lucratif pour moi :)

Je pense faire un bouton Rectangle avec des coins arrondis maintenant :)

MODIFICATION : Après réfléxion, ce code marche très bien pour faire de beau rond mais pas pour de beaux ovales, car les extrémités de sont pas bien arrondies dans le cas de diamètre trop différent...
Je suis désolé, je ne maitrise pas encore les équations de la forme : x=a(Y-K)^2+H, ducoup je mettrais à jour ce code plus tard, j'ai déjà l'idée de comment le traiter (en fonction du diamètre le plus long).
MAIS, le plus important est que les ronds marchent bien, car ils me serviront pour le RoundRect qui sera plus utile que des Ovales :)

Enfin bref, voilà quand même le code :)

Ovale.hpp
#ifndef SFML_OVALE_HPP
#define SFML_OVALE_HPP

#include <SFML/System/Vector2.hpp>

namespace sf
{
template <typename T>
class Ovale
{
public :
    Ovale();
    Ovale(T leftX, T topY, T diamX, T diamY);
    Ovale(const Vector2<T>& position, const Vector2<T>& size);

    bool contains(T x, T y) const;
    bool contains(const Vector2<T>& point) const;

    T left;
    T top;
    T diameterX;
    T diameterY;
};

#include <SFML/Graphics/Ovale.inl>

typedef Ovale<int> IntOvale;
typedef Ovale<float> FloatOvale;

} // namespace sf


#endif // SFML_OVALE_HPP
 

Ovale.inl
////////////////////////////////////////////////////////////
template <typename T>
Ovale<T>::Ovale() :
left(0),
top(0),
diameterX(0),
diameterY(0)
{

}

////////////////////////////////////////////////////////////
template <typename T>
Ovale<T>::Ovale(T leftX, T topY, T diamX, T diamY) :
left(leftX),
top(topY),
diameterX(diamX),
diameterY(diamY)
{

}

////////////////////////////////////////////////////////////
template <typename T>
Ovale<T>::Ovale(const Vector2<T>& position, const Vector2<T>& size) :
left(positon.x),
top(position.y),
diameterX(size.x),
diameterY(size.y)
{

}

////////////////////////////////////////////////////////////
template <typename T>
bool Ovale<T>::contains(T x, T y) const
{
    float yTest;
    float a;
    float b;
    float c;
    float Beta(top);
    float Alpha(left+diameterX/2);
    float x1(left);
    float x2(left+diameterX);

    if (y = top+diameterY/2)
    {
        if (x >= x1 && x <= x2) return true;
        else return false;
    }
    else if (y > top+diameterY/2)
    {
        Beta += diameterY;
        a = -Beta/(x1-Alpha)^2;
        b = -a*x1 -a*x2;
        c = x1*x2*a;
        yTest = a*x^2 + b*x + c;
        if (yTest >= y && x >= x1 && x <= x2) return true;
        else return false;
    }
    else if (y < top+diameterY/2)
    {
        a = -Beta/(x1-Alpha)^2;
        b = -a*x1 -a*x2;
        c = x1*x2*a;
        yTest = a*x^2 + b*x + c;
        if (yTest <= y && x >= x1 && x <= x2) return true;
        else return false;
    }
}

////////////////////////////////////////////////////////////
template <typename T>
bool Ovale<T>::contains(const Vector2<T>& point) const
{
    return contains(point.x, point.y);
}

119
Général / Re : Des boutons avec sf::IntRect
« le: Mai 23, 2013, 07:17:01 pm »
Ah oui pour inverser les sprites par rapport à un axe :)

Sinon je finirai demain après un peu de réflexion sur les polynômes du second degré, j'ai envie de trouver ça tout seul plutôt que d'avoir à le reprendre sans comprendre.

120
Général / Re : Des boutons avec sf::IntRect
« le: Mai 23, 2013, 07:02:57 pm »
Okay d'accord :)

J'ai nommé la classe Ovale, j'ai repris ton fichier .hpp et changé ce qui fallait.

J'attaque le .inl là ;)

Par contre je vais devoir trouver un truc pour le contains...

Question bête (encore) comment un rectangle peut avoir des dimensions négatives ?

Pages: « Précédente 1 ... 6 7 [8] 9 10 ... 12 Suivante »
anything