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

Pages: [1]
1
Général / Re : Draw des objets depuis un Thread
« le: Avril 17, 2016, 07:43:56 pm »
Un grand merci pour votre aide.

2
Général / Re : Draw des objets depuis un Thread
« le: Avril 17, 2016, 03:38:21 pm »
Je reçois ce message d'erreur
'std::invoke' : fonction correspondante surchargée introuvable
La spécialisation du modèle de fonction 'unknown-type std::invoke(_Callable &&,_Types &&...)' a échoué

void TestThread(sf::RenderWindow* window, Bouton& BoutonPlay) {
        while (window->isOpen())
        {
                window->clear();
                window->draw(BoutonPlay.getSpriteBouton(0));
                window->display();
        }
}
 

std::thread threadT(&TestThread, &wmenu, &BoutonPlay);
 

3
Général / Draw des objets depuis un Thread
« le: Avril 17, 2016, 01:00:42 pm »
Bonjour, je bosse sur un projet de fin d'année et je me retrouve avec un petit problème j'essaye de faire le clear, draw et display de sprite crée depuis une fonction.
J'ai trouver des code dans ce type ci:
///include
void rendering( RenderWindow* window );
 
int main( void )
{
   sf::RenderWindow window;
   window.create(...);
   sf::Thread t( &rendering, &window );
   t.launch();
   while( window.isOpen() )
   {
      sf::Event event;
      while( window.pollEvent( event )
      {
         ///Gestion des evenements
      }
   }
   return 0;
}
 
void rendering( RenderWindow* window )
{
   while( window->isOpen()
   {
      window->clear();
      ///Draw
      window->display();
   }
}
 
mais je voudrais faire appelle a un objet  mais je me retouve  toujours avec un problème commme quoi je ne peux pas donner 3 arguments a la fonction thread
 sf::Thread thread(&TestThread, &wmenu, &Bouton BoutonPlay);

void TestThread(sf::RenderWindow* window, Bouton* BoutonPlay) {
        BoutonPlay.afficher(window);
        while (window->isOpen())
        {
                window->clear();
                //window->draw(BoutonPlay.getSpriteBouton(0));
                window->display();
        }
}

sf::Sprite Bouton::getSpriteBouton(int NumeroBouton) {
        return SpriteBouton[NumeroBouton];
}
Ou j'arrive avec des erreurs comme quoi il ne le reconnait pas comme objet.

4
Général / Re : Sprite fusionne
« le: Avril 01, 2016, 11:08:42 am »
Voila voila après quelque petit recherche je suis parvenu a faire ça
Bouton.cpp
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Network.hpp>
//#include <Box2D/Box2D.h>
#include <iostream>
#include "Bouton.h"


        sf::Texture TextureBouton[15];
        sf::Sprite SpriteBouton[15];

Bouton::Bouton(char NomPGN[32],int NumeroBouton, float OrigineX, float OrigineY, float PositionX, float PositionY)
{
        TextureBouton[NumeroBouton].loadFromFile(NomPGN);
        SpriteBouton[NumeroBouton].setTexture(TextureBouton[NumeroBouton]);
        SpriteBouton[NumeroBouton].setOrigin(sf::Vector2f(OrigineX, OrigineY));
        SpriteBouton[NumeroBouton].setPosition(sf::Vector2f(PositionX, PositionY));
}


sf::Sprite Bouton::getSpriteBouton(int NumeroBouton)
{
        return SpriteBouton[NumeroBouton];
}

Bouton.h
#ifndef DEF_BOUTON
#define DEF_BOUTON

#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Network.hpp>
//#include <Box2D/Box2D.h>
#include <iostream>


class Bouton
{
public:
        Bouton(char NomPGN[32], int NumeroBouton, float OrigineX, float OrigineY, float PositionX, float PositionY);
        sf::Sprite getSpriteBouton(int NumeroBouton);
};

#endif

Source.cppµ
#include<SFML/Graphics.hpp>
#include<iostream>
#include "Menu.h"
#include "Bouton.h"

int main()
{
        //Varibale
        int NumeroMenu=1;

        //Creation Fenetre
        sf::RenderWindow wmenu(sf::VideoMode(1366, 768), "Menu", sf::Style::Default);

        //Objet
        Menu Menu("Fond.png");
        Bouton BoutonPlay("BoutonPlay.png",0,  176, 0, 683, 200);
        Bouton BoutonOption("BoutonOption.png",1, 153, 0, 683, 340);
        Bouton BoutonExit("BoutonExit.png", 2,153, 0, 683, 467);


        while (wmenu.isOpen())
        {

        sf::Event event;
        while (wmenu.pollEvent(event))
        {
                if (event.type == sf::Event::Closed)
                        wmenu.close();
        }

                switch (NumeroMenu)
                {
                case 1: //Menu de base
                        wmenu.clear();
                        wmenu.draw(Menu.getSpriteFond());
                        wmenu.draw(BoutonPlay.getSpriteBouton(0));
                        wmenu.draw(BoutonOption.getSpriteBouton(1));
                        wmenu.draw(BoutonExit.getSpriteBouton(2));
                        wmenu.display();
                        break;
                case 2: //Play
                        break;
                case 3: //Option
                        break;
                default:
                        std::cout << "ERROR";
                        break;
                }

        }

        return 0;
}

Et ça fonctionne mais je sais pas si c'est optimiser

5
Général / Re : Sprite fusionne
« le: Avril 01, 2016, 10:12:47 am »
Un grand merci et désole première fois que je poster sur ce forum je n'ai pas vu le bouton code.
Donc je devrai sortir la création de texture de la classe? ou juste utiliser une variables pour nommer la texture différaient?

6
Général / [Résolu]Sprite fusion
« le: Avril 01, 2016, 01:55:27 am »
Bonjour, j'essaye de faire une gestion de bouton via une classe mais lors du display  je n'ai qu'un seul sprite d'afficher mais avec un semblant de fusion raté avec les autres.
 Bouton.cpp
Citer
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Network.hpp>
//#include <Box2D/Box2D.h>
#include <iostream>
#include "Bouton.h"


sf::Texture TextureBouton;
sf::Sprite SpriteBouton;

Bouton::Bouton(char NomPGN[32], float OrigineX, float OrigineY, float PositionX, float PositionY)
{
   TextureBouton.loadFromFile(NomPGN);
   SpriteBouton.setTexture(TextureBouton);
   SpriteBouton.setOrigin(sf::Vector2f(OrigineX, OrigineY));
   SpriteBouton.setPosition(sf::Vector2f(PositionX, PositionY));
}


sf::Sprite Bouton::getSpriteBouton()
{
   return SpriteBouton;
}

Bouton.h
Citer
#ifndef DEF_BOUTON
#define DEF_BOUTON

#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Network.hpp>
//#include <Box2D/Box2D.h>
#include <iostream>


class Bouton
{
public:
   Bouton(char NomPGN[32], float OrigineX, float OrigineY, float PositionX, float PositionY);
   sf::Sprite getSpriteBouton();
};

#endif

Source.cpp
Citer
#include<SFML/Graphics.hpp>
#include<iostream>
#include "Menu.h"
#include "Bouton.h"

int main()
{
   //Varibale
   int NumeroMenu=1;

   //Creation Fenetre
   sf::RenderWindow wmenu(sf::VideoMode(1366, 768), "Menu", sf::Style::Default);

   //Objet
   Menu Menu("Fond.png");
   Bouton BoutonPlay("BoutonPlay.png", 176, 0, 683, 200);
   Bouton BoutonOption("BoutonOption.png", 153, 0, 683, 340);
   Bouton BoutonExit("BoutonExit.png", 153, 0, 683, 467);


   while (wmenu.isOpen())
   {

   sf::Event event;
   while (wmenu.pollEvent(event))
   {
      if (event.type == sf::Event::Closed)
         wmenu.close();
   }

      switch (NumeroMenu)
      {
      case 1:   //Menu de base
         wmenu.clear();
         wmenu.draw(Menu.getSpriteFond());
         wmenu.draw(BoutonPlay.getSpriteBouton());
         wmenu.draw(BoutonOption.getSpriteBouton());
         wmenu.draw(BoutonExit.getSpriteBouton());
         wmenu.display();
         break;
      case 2:   //Play
         break;
      case 3:   //Option
         break;
      default:
         std::cout << "ERROR";
         break;
      }

   }

   return 0;
}

Le résultat
http://prntscr.com/amlugh
Les images que je devrai avoir
http://prntscr.com/amluot

Merci d'avance pour votre aide

Pages: [1]