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

Pages: [1]
1
Graphique / Re : Problème affichage sprite
« le: Octobre 13, 2016, 01:43:47 pm »
D'accord, je vais re-recommencer :-\
En y allant test par test je finirais bien par voir ou est le problème... j’imagine...
Mais en y repensant : si je crée ma Barre dans mon main tout fonctionne, donc en théorie je devrais étudier les relations entre Graphique et Bar pour voir ou est le problème.

la texture est chargée dans le constructeur. Elle reste inchangée par la suite... et les seules autres fois ou cette variable apparait c'est en 3e argument pour créer une nouvelle Barre. Et les getTexture sur Barre me disent qu'elle trouve bien ma texture.

mes seules façon de modifier mes Barres sont via les fonctions setTeam(int i) et moveX(int x), je n’appelle que la 1e et elle fonctionne dans le main, me permettant de changer à ma guise la couleur de la barre.

donc la texture est OK, la modif : OK, il ne reste que l'affichage. J'ai donc probablement foiré un truc dans Graphics::draw(sf::RenderWindow &win);

je pourrais tenter de renvoyer des pointeurs de mes Barres dans la boucle principale... ou rendre dessinable Graphique... ou bien j'arrête avec mes textures, après tout, mon but de base était un test sur les fonctions liées au réseaux -_-"

Je recommencerais quand j'aurais fini d'explorer les dernières idées que j'ai eu pendant la dernière heure :P

Bref, merci de m'avoir accordé de votre temps et de votre support ;D bonne journée à vous  ;)

edit : en faisant en sorte que Graphique puisse être dessiné (class Graphics : public sf::Drawable) j'ai réussi à changer les couleurs : quand je fais un setTeam(int i) la couleur change maintenant.
Bon elle change... j'ai plus l'impression qu'elle prend le pixel supérieur gauche de son nouveau découpage et l'applique au reste :P mais c'est déjà bcp mieux du coup

2
Graphique / Problème affichage sprite
« le: Octobre 13, 2016, 01:08:23 pm »
Aucun setColor nul part, j'ai appris par le passé et à mes dépends que modifier la couleur du sprite modifiait beaucoup de chose :-\
Du coup j'ai vérifié et la couleur de Bar est de 255,255,255.

Voila la texture, le rouge affiché me semble identique au contour rouge de la première barre.

3
Graphique / Re : Problème affichage sprite
« le: Octobre 13, 2016, 12:31:47 pm »
Quand tu dis que la texture ne s'affiche pas, c'est blanc ou bien il n'y a rien du tout ?
Il m'affiche un rectangle rouge de 90x sur 20y, il est affiché à 50x, 50y du bord supérieur gauche.

Peut-on voir la définition du constructeur de Bar ?
Pour sûr! :D
 Bar::Bar(float x, float y, sf::Texture &t)
 {
     setTexture(t);
     setPosition(x,y);
     setTeam(0);
 }
Dans le doute je met aussi le setTeam :
void Bar::setTeam(int i)
{
     if(i >= 0 && i < 4)
     {
         setTextureRect(sf::IntRect(0,20*i,90,20));
         team = i;
     }
}
PS : écris donc tes boucles comme ça, c'est plus sympa :
Merci, je connaissais pas ce raccourci ;D

4
Graphique / Re : Problème affichage sprite
« le: Octobre 13, 2016, 12:11:26 pm »
Merci pour la rapidité de votre réponse  :D

Concernant le "Le problème du carré blanc" :
j'avais créer une entité texture dans ma classe Graphics, elle est chargée dès le début. J'ai également fait quelques test supplémentaire à coup de "cout".
Graphics::Graphics()
{
    texture.loadFromFile("textures.bmp");
    font.loadFromFile("Fixedsys500c.ttf");
    refresh = false;

    clientConnected=false;
    listen.setBlocking(false);
    for(int i = 0; i < 4; i++)socket[i].setBlocking(false);
    cPlayer = 0;

    setPhase(0);

    //TEST
    v_bar.push_back(Bar(50,50,texture));
    //====
}
void Graphics::draw(sf::RenderWindow &win)
{
    for(int i = 0; i < v_button.size();i++)
    {
        win.draw(v_button.at(i));
    }
    for(int i = 0; i < v_ball.size();i++)
    {
        win.draw(v_ball.at(i));
    }
    for(int i = 0; i < v_bar.size();i++)
    {
        win.draw(v_bar.at(i));

        //TEST
        cout << v_bar.at(i).getTexture()->getMaximumSize() << endl;
        cout << v_bar.at(i).getTextureRect().width << " " << v_bar.at(i).getTextureRect().height << endl;
        cout << v_bar.at(i).getLocalBounds().width << " " << v_bar.at(i).getLocalBounds().height << endl;
        //====
    }
}

les "cout" me disent :
16384
90 20
90 20

Du coup, j’imagine que ce n'est pas de la que viens le problème. A moins que j'ai tout mal compris  ??? je m'en remet à votre jugement  :-\

Aurais-ce un lien avec sf::RenderStates? C'est un élément que j'ai encore pas mal de difficultées à appréhender  :-[

5
Graphique / Problème affichage sprite
« le: Octobre 13, 2016, 11:11:51 am »
Bien le bonjour,
Habituellement je trouve mes réponses tout seul, mais la je ne suis même pas capable d'expliquer pleinement le problème  :(
N'hésitez pas à me reprendre, je manque énormément de vocabulaire en informatique.

BREF!

Je tente de faire un pong. Pour cela j'ai créer une classe "Barre" :
class Bar : public sf::Sprite
{
public:
    Bar(float x, float y, sf::Texture &t);

    void setTeam(int i);
    void moveX(int x);
    int getTeam()const;

private:
    int team;
};
J'ai également un objet "Graphisme" qui est la pour gérer une bonne partie de mon merdier programme. Dans cet objet ce trouvent les vector qui contiennent les barres, bouton, et autres :
std::vector<Bar> v_bar;
std::vector<Ball> v_ball;
std::vector<Button> v_button;

DONC:

Si la texture de ma barre s'affiche très bien quand il est créer depuis le main, il n'en est pas de même pour ceux qui habitent (ce n'est définitivement pas le bon terme  :-[) ma classe graphique. Et c'est la le problème...
Je suppose que je ne vais pas mettre tout mon programme... Vous avez besoins de quoi pour m'aider?

dans le doute je rajoute le main :
(click to show/hide)
ainsi que les éléments de ma classe graphique :
(click to show/hide)
merci d'avance :)

Pages: [1]
anything