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

Pages: [1] 2 Suivante »
1
Graphique / Re : Déplacement Sprite
« le: Mai 23, 2014, 10:13:34 pm »
merci, ça marche.
ça va faire longtemps que je n'avais pas fait de c++ et j'en avais oublié les bonnes pratiques.

2
Graphique / Re : Déplacement Sprite
« le: Mai 23, 2014, 09:49:21 pm »
je vois le problème, mais je ne sais pas comment le régler

3
Graphique / [Résolu]Déplacement Sprite
« le: Mai 23, 2014, 09:23:21 pm »
 Bonjour,

J'ai un problème pour déplacer un sprite. Lorsque j'appuie sur la touche pour le déplacer celle-ci déclenche bien un événement mais mon sprite ne se déplace pas.

int main()
{
        sf::RenderWindow window(sf::VideoMode(TAILLEX, TAILLEY), "Jeu de Pong");
        Terrain terrain;
        while (window.isOpen())
        {

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

                }
                        if(sf::Keyboard::isKeyPressed(sf::Keyboard::Right)){
                                terrain.getSpriteBalle().move(10,0);
                                std::cout<<"1"<<std::endl;
                        }

                window.clear(sf::Color(255,255,255));

                window.draw(terrain.getSpriteBalle()); 
                window.display();
        }

        return 0;
}


Terrain::Terrain(){
        sf::Texture textureBalle;
        if(!textureBalle.loadFromFile("ressources/ball.jpg")){
                perror("Image balle: ");
        }
        _balle=new Balle(textureBalle,1);

}

sf::Sprite Terrain::getSpriteBalle(){
        return _balle->getSpriteBalle();
}
 

Merci d'avance pour votre aide.

Cordialement Faren

4
Graphique / Re : Déplacement personnage
« le: Octobre 03, 2013, 02:38:43 pm »
Merci le problème venait du float

5
Graphique / Déplacement personnage
« le: Octobre 03, 2013, 02:07:14 pm »
  Bonjour,

Je reviens avec un problème que je ne sais pas résoudre (plus dur que le dernier  :P)
Je fais bouger un personnage créé dans une classe qui se nomme player, l'appel pour bouger le personnage se fait dans la boucle while. Mon personnage ne bouge presque pas (environ 1px par seconde) quand je reste appuyer sur une touche. Par contre quand je fais sauter mon personnage celui-ci saute bien et retombe normalement.

Je ne sais pas ce qui cloche.
le main
Player Perso;
while (window.isOpen())
    {
        sf::Event event;
        float elapsed = clock.restart().asSeconds();
        //float fps=(1.0/elapsed); // C'est pour calculer le nombre de fps
        //cout <<fps<<endl;
        float deplacement=speed*elapsed;

       Perso.gravite();
        vsaut=175;
        float dsaut=vsaut;
        dsaut+=gravity;

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

                    if(event.key.code ==sf::Keyboard::Space && event.type==sf::Event::KeyPressed && Perso.getSauter()==true)
                    {
                        Perso.sauter(dsaut);

                    }


        }


if(sf::Event::KeyPressed)
       {

                    if(sf::Keyboard::isKeyPressed(sf::Keyboard::Q))
                       {
                           Perso.mouvementGauche(deplacement);
                       }


                    if(sf::Keyboard::isKeyPressed(sf::Keyboard::S))
                        {
                            Perso.mouvementBas(deplacement);
                        }


                    if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))
                        {
                            Perso.mouvementDroite(deplacement);
                        }


        }
 

Player.cpp
void Player::mouvementGauche(int vitesse)
{
    if(Scollision->collision(sPerso,Mmap->getSprite4())== false)
       sPerso.move(-vitesse,0);
    else sPerso.move(3,0);

    if(Scollision->collision(sPerso,Mmap->getSprite5())== false)
       sPerso.move(-vitesse,0);
    else sPerso.move(3,0);


}

void Player::mouvementBas(int vitesse)
{
      if(Scollision->collision(sPerso,Mmap->getSprite4())== false)
       sPerso.move(0,vitesse);
    else sPerso.move(0,-3);

    if(Scollision->collision(sPerso,Mmap->getSprite5())== false)
       sPerso.move(0,vitesse);
    else sPerso.move(0,-3);

}

void Player::mouvementDroite(int vitesse)
{
      if(Scollision->collision(sPerso,Mmap->getSprite4())== false)
       {sPerso.move(vitesse,0);}
    else sPerso.move(-3,0);

    if(Scollision->collision(sPerso,Mmap->getSprite5())== false)
       sPerso.move(vitesse,0);
    else sPerso.move(-3,0);

}

void Player::sauter(int haut)
{
    sPerso.move(0,-haut);
    saut=false;
}

Merci pour votre aide

6
Graphique / Re : Tableau de sprites
« le: Octobre 02, 2013, 10:50:02 pm »
je crois qu'il faut que j'aille dormir, car faire une erreur comme ça c'est la big honte

7
Graphique / Tableau de sprites
« le: Octobre 02, 2013, 10:36:25 pm »
  Bonjour,

Ayant de nombreux sprites à faire pour créer des pnj qui se ressemblents, j'ai voulu faire un tableau dynamique mais je n'arrive pas à le faire sans obtenir d'erreurs.
Voici le code que j'ai tenté
sf::Texture tPerso;
    sf::Sprite sPerso;
vector<sf::Sprite> pnj(5);
    sf::Image iPerso;

   



      if(!iPerso.loadFromFile("Personnage.png"))
    {
cout<<"erreur chargement image"<<endl;
    }
sf::Color fond=iPerso.getPixel(0,0);
    iPerso.createMaskFromColor(fond);
    tPerso.loadFromImage(iPerso);
    sPerso.setTexture(tPerso);

    for(int i=0;i<5;i++)
    {

        sPerso[i].setTexture(tPerso); // Ne fonctionne pas ici
        sPerso[i].setPosition(TAILLEVIDEOX/2-iPerso.getSize().x+10*i,190); // ni là !
    }

Merci pour votre aide

8
Si mais le clean n'a eu aucun effet

9
Le problème était qu'il restait un fichier.o dans mon dossier qui m'empechait de compiler, celui-ci n'étant pas visible dans le dossier. Pour régler le problème j'ai dû faire un Ccleaner.

10
Graphique / Re : Tile mapping problème
« le: Septembre 20, 2013, 09:58:57 pm »
Le problème venait de la lecture du fichier, en faite il lisait la ligne entière puis le mettait dans mon tableau c'est pour cela que rien ne s'affichait.
De plus j'ai fait une erreur d'inattention en effet les sprites s'affichaient après à l'envers (j'avais inversé lignes et colonnes du tableau).
Donc maintenant mes sprites s'affichent.

Merci encore pour ton aide

11
Graphique / Re : Tile mapping problème
« le: Septembre 20, 2013, 08:33:55 pm »
Voilà j'ai modifié, mais ça ne marche toujours pas.

12
Graphique / Re : Tile mapping problème
« le: Septembre 20, 2013, 07:16:15 pm »
Je pense que l'erreur vient de ma fonction initSprites mais je sais pas où précisément.

13
Graphique / Tile mapping problème
« le: Septembre 20, 2013, 05:07:23 pm »
  Bonjour,

J'essaie de créer une map en 2D d'après un fichier texte.
Mon programme lit très bien le fichier, mais il ne le dessine pas dans la fenêtre, je ne sais pas où est le problème.
Je précise que mon code compile sans problème.
main.cpp

int main()
{
    sf::RenderWindow window(sf::VideoMode(400, 400), "SFML works!");
    const float speed =100;
    sf::Clock clock;
    sf::Texture *tPerso=new sf::Texture;
    int carte[200][200];

    sf::Sprite *sPerso=new sf::Sprite;
    sf::Image *iPerso=new sf::Image;

    MapManager niveau;
    niveau.lectureNiveau(carte);



    while (window.isOpen())
    {
        sf::Event event;
        float elapsed = clock.restart().asSeconds();

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



        }



if(sf::Event::KeyPressed)
                {
                   

                  }

        window.clear(sf::Color::White);
        niveau.initSprites(carte,window);
        window.draw(*sPerso);
        window.display();


                }

delete  iPerso;
delete  tPerso;
delete  sPerso;


        return 0;
    }






 

MapManger.cpp:
#include "MapManager.h"

MapManager::MapManager()
{

}



void MapManager::initSprites(int carte[][TAILLE],sf::RenderWindow &fenetre)
{
int tailleX;
int tailleY;
int i=0;
int j=0;


if(iTiles.loadFromFile("tileSet.jpg")) //Chargement Images
{
  tailleX= iTiles.getSize().x/3;
   tailleY= iTiles.getSize().y/5;
   tTiles.loadFromImage(iTiles);
   sTiles1.setTexture(tTiles);
   sTiles2.setTexture(tTiles);
   sTiles3.setTexture(tTiles);
   sTiles4.setTexture(tTiles);
   sTiles5.setTexture(tTiles);


    for(i=0;i<6;i++)
 {
    for(j=0;j<9;j++)
   {

        switch(carte[i][j])
    {
    case 1:
           sTiles1.setTextureRect(sf::IntRect(0,0,tailleX,tailleY));
           sTiles1.setPosition(j*tailleX,i*tailleY);
           fenetre.draw(sTiles1);

        break;
    case 2:
           sTiles2.setTextureRect(sf::IntRect(tailleX,0,2*tailleX,tailleY));
           sTiles2.setPosition(j*tailleX,i*tailleY);
           fenetre.draw(sTiles2);

        break;
    case 3:
           sTiles3.setTextureRect(sf::IntRect(2*tailleX,0,3*tailleX,tailleY));
           sTiles3.setPosition(j*tailleX,i*tailleY);
           fenetre.draw(sTiles3);

        break;
    case 4:
           sTiles4.setTextureRect(sf::IntRect(0,tailleY,tailleX,2*tailleY));
           sTiles4.setPosition(j*tailleX,i*tailleY);
           fenetre.draw(sTiles4);

        break;
    case 5:
           sTiles5.setTextureRect(sf::IntRect(tailleX,tailleY,2*tailleX,2*tailleY));
           sTiles5.setPosition(j*tailleX,i*tailleY);
           fenetre.draw(sTiles5);

        break;
    default:
        break;

    }

   }


 }
}
else{cout << "Erreur chargement Image tileSet.png"<<endl;}


}
 

MapManager.hpp
#ifndef MAPMANAGER_H_INCLUDED
#define MAPMANAGER_H_INCLUDED


#include <iostream>
#include <fstream>
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#define TAILLE 200

using namespace std;

class MapManager

{
public:

MapManager();
void lectureNiveau(int carte[][TAILLE]);
void initSprites(int carte[][TAILLE],sf::RenderWindow &fenetre);



private:

sf::Image iTiles;
sf::Texture tTiles1;
sf::Sprite sTiles1;
sf::Texture tTiles2;
sf::Sprite sTiles2;
sf::Texture tTiles3;
sf::Sprite sTiles3;
sf::Texture tTiles4;
sf::Sprite sTiles4;
sf::Texture tTiles5;
sf::Sprite sTiles5;


};




#endif // MAPMANAGER_H_INCLUDED
 

14
Général / [Résolu]SFML executer projet (maj problème vient du code)
« le: Septembre 19, 2013, 02:32:28 pm »
 Bonjour,

En ce moment j'utilise la SFML (et CodeBlocks)pour un projet, tout marchait bien jusqu'à aujourd'hui.

Le projet compile mais ne se lance pas, il me demande "build it now"(normal car le projet est nouveau) je réponds oui. Au bout de 10 secondes il me repose la même question, alors je répons oui encore.

Il me dit alors que mon projet ne peut pas s'ouvrir "cannot open output file invalid argument" .

J'ai recherché dans les processus mon programme n'y est pas.

Que faire ?

Merci d'avance pour vos réponses

--------------------------------------------------------------------------------------------
Après plusieurs tests, il semblerait que le problème vienne du code.
Le voici:
main.cpp
#include "MapManager.h"

using namespace std;

bool condition(sf::Sprite *perso,sf::Texture tPerso,sf::Sprite *bPerso,sf::Texture btPerso);


int main()
{
    sf::RenderWindow window(sf::VideoMode(400, 400), "SFML works!");
    const float speed =100;
    sf::Clock clock;
    sf::Texture *tPerso=new sf::Texture;
    int carte[200][200];

    sf::Sprite *sPerso=new sf::Sprite;
    sf::Image *iPerso=new sf::Image;

    MapManager niveau;
    niveau.lectureNiveau(carte);



    if(!iPerso->loadFromFile("Personnage.png"))
    {
cout<<"erreur chargement image"<<endl;
    }
sf::Color fond=iPerso->getPixel(0,0);
    iPerso->createMaskFromColor(fond);
    tPerso->loadFromImage(*iPerso);
    sPerso->setTexture(*tPerso);
    window.setKeyRepeatEnabled(true);


cout <<"salut"<<endl;

    while (window.isOpen())
    {
        sf::Event event;
        float elapsed = clock.restart().asSeconds();

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



        }


if(sf::Event::KeyPressed)
                {
                    //if(sf::Keyboard::isKeyPressed(sf::Keyboard::Z))
                      //if(condition(sPerso)==true){sPerso->move(0,-speed*elapsed);}

                    //if(sf::Keyboard::isKeyPressed(sf::Keyboard::Q))
                       //if(condition(sPerso)==true){sPerso->move(-speed*elapsed,0);}

                    //if(sf::Keyboard::isKeyPressed(sf::Keyboard::S))
                       //if(condition(sPerso)==true){sPerso->move(0,speed*elapsed);}

                   // if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))
                       //if(condition(sPerso)==true){sPerso->move(speed*elapsed,0);}



                  }

        window.clear(sf::Color::White);
        niveau.initSprites(carte,window);
        window.draw(*sPerso);
        window.display();


                }

delete  iPerso;
delete  tPerso;
delete  sPerso;


        return 0;
    }

bool condition(sf::Sprite *perso,sf::Texture *tPerso,sf::Sprite *bPerso,sf::Texture btPerso)
{
    // Taille et position du sprite 1
    int x1=0,y1=0,tailleX=0,tailleY=0; //position en haut à gauche de l'"image"
    x1=perso->getPosition().x;
    y1=perso->getPosition().y;
    tailleX=tPerso->getSize().x;
    tailleY=tPerso->getSize().y;

    //taille et position du sprite 2
    int x2=0,y2=0,btailleX=0,btailleY=0; //position en haut à gauche de l'"image"
    x2=perso->getPosition().x;
    y2=perso->getPosition().y;
    btailleX=tPerso->getSize().x;
    btailleY=tPerso->getSize().y;

    if( (x1<=x2+btailleX && x1 >=x2) || (x1+tailleX>=x2 && x2>=x1) || (y1<=y2+btailleY && y1 >=y2) || (y1+tailleY>=y2 && y2>=y1) ) //conditions pour les collisions
        return true;
    else return false;

}




 

MapManger.cpp:
#include "MapManager.h"

MapManager::MapManager()
{

}

void MapManager::lectureNiveau(int carte[][TAILLE])
{
    ifstream monflux("Niveau.txt");
int i=0,j=0;
    if(!monflux)
 {
     cout << "Erreur ouverture fichier niveau.txt"<<endl;

 }
 else
 {
     while(!monflux.eof())
     {
         for(j=0;i<6;j++)
         {
             for(i=0;i<9;i++)
             {
                 monflux >> carte[i][j];

             }

         }


     }
    monflux.close();



 }
}

void MapManager::initSprites(int carte[][TAILLE],sf::RenderWindow &fenetre)
{
int tailleX;
int tailleY;
int i=0;
int j=0;


if(iTiles.loadFromFile("tileSet.jpg")) //Chargement Images
{
   tailleX= iTiles.getSize().x/3;
   tailleY= iTiles.getSize().y/5;

    for(i=0;i<6;i++)
 {
    for(j=0;j<9;j++)
   {

        switch(carte[i][j])
    {
    case 1:tTiles1.loadFromImage(iTiles,sf::IntRect(0,0,tailleX,tailleY));
           sTiles1.setTexture(tTiles1);
           sTiles1.setPosition(j*tailleX,i*tailleY);
           fenetre.draw(sTiles1);

        break;
    case 2:tTiles2.loadFromImage(iTiles,sf::IntRect(tailleX,0,2*tailleX,tailleY));
           sTiles2.setTexture(tTiles2);
           sTiles2.setPosition(j*tailleX,i*tailleY);
           fenetre.draw(sTiles2);

        break;
    case 3:tTiles3.loadFromImage(iTiles,sf::IntRect(2*tailleX,0,3*tailleX,tailleY));
           sTiles3.setTexture(tTiles3);
           sTiles3.setPosition(j*tailleX,i*tailleY);
           fenetre.draw(sTiles3);

        break;
    case 4:tTiles4.loadFromImage(iTiles,sf::IntRect(0,tailleY,tailleX,2*tailleY));
           sTiles4.setTexture(tTiles4);
           sTiles4.setPosition(j*tailleX,i*tailleY);
           fenetre.draw(sTiles4);

        break;
    case 5:tTiles4.loadFromImage(iTiles,sf::IntRect(tailleX,tailleY,2*tailleX,2*tailleY));
           sTiles4.setTexture(tTiles4);
           sTiles4.setPosition(j*tailleX,i*tailleY);
           fenetre.draw(sTiles5);

        break;
    default:
        break;

    }

   }


 }
}
else{cout << "Erreur chargement Image tileSet.png"<<endl;}


}

sf::Sprite MapManager::getSprite1()
{
    return sTiles1;
}

sf::Sprite MapManager::getSprite2()
{
    return sTiles2;
}
sf::Sprite MapManager::getSprite3()
{
    return sTiles3;
}
sf::Sprite MapManager::getSprite4()
{
    return sTiles4;
}
sf::Sprite MapManager::getSprite5()
{
    return sTiles5;
}

 

MapManager.hpp
#ifndef MAPMANAGER_H_INCLUDED
#define MAPMANAGER_H_INCLUDED


#include <iostream>
#include <fstream>
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#define TAILLE 200

using namespace std;

class MapManager

{
public:

MapManager();
void lectureNiveau(int carte[][TAILLE]);
void initSprites(int carte[][TAILLE],sf::RenderWindow &fenetre);
sf::Sprite getSprite1();
sf::Sprite getSprite2();
sf::Sprite getSprite3();
sf::Sprite getSprite4();
sf::Sprite getSprite5();


private:

sf::Image iTiles;
sf::Texture tTiles1;
sf::Sprite sTiles1;
sf::Texture tTiles2;
sf::Sprite sTiles2;
sf::Texture tTiles3;
sf::Sprite sTiles3;
sf::Texture tTiles4;
sf::Sprite sTiles4;
sf::Texture tTiles5;
sf::Sprite sTiles5;


};




#endif // MAPMANAGER_H_INCLUDED
 

15
Fenêtrage / Re : Problème déplacement
« le: Septembre 16, 2013, 10:15:30 pm »
Ah oui ! c'est vraiment pas mal, j'y aurais pas pensé. Merci!

Pages: [1] 2 Suivante »