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

16
Graphique / Re : collision
« le: Juin 18, 2014, 11:46:36 pm »
^^ j'ai appeler sa fonction mais ce que je voulais dire na rien à voire a une fonction. Pour les classe je commence demain ou vendredi car suite a plusieurs essai infructueux j’ai abandonner mais il faut vraiment que j'arrive à coder en POO.   

17
Graphique / Re : collision
« le: Juin 18, 2014, 09:35:27 pm »
Je n'ai rien trouver, j'ai donc décider d'isoler le problème avec un code simple prenant que la fonction bool :

#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>
#include <sstream>
#include <stdlib.h>
int x;
int y;
int taillecase = 40;
using namespace std;

int main()
{
    sf::RenderWindow World(sf::VideoMode(800, 600), "tilemap");

bool masque [] =
{
      1,1,1,1,1,
      1,0,0,0,1,
      1,0,0,0,1,
      1,0,0,0,1,
      1,1,1,1,1
};



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

        bool collision;
        {
            if ( masque [ int (x / taillecase) + 3*int(y / taillecase) ] ==1 )
            {
                return true;
                cout << "blabla" << endl;
            }
        }

    }
}
 


Cela ne change rien la fenêtre s'ouvre/ferme. Cela ne viens donc pas du reste mais de cette fonction.

18
Graphique / Re : collision
« le: Juin 18, 2014, 11:18:21 am »
sa c'est sur mais cette aprèm je suis pris par une chose que l'on appel le BAC. Donc je verais sa ce soir

19
Graphique / Re : collision
« le: Juin 18, 2014, 11:09:35 am »
j'ai beau appuyer sur le bouton rouge ( code block ) pour debbugers et rien ne ce passe, sa m'affiche rien

20
Graphique / collision
« le: Juin 18, 2014, 10:50:14 am »
Bonjour désoler de redemander de l'aider mais depuis hier soir j'ai une erreur et je n'ai aucune idée d'où cela peut venir.

Apres avoir réussit a crée ma tile map, il falai bien faire les collision j'ai donc trouver un post qui disais de faire un tableau de bool de même dimension que la tile map,
le 0 correspond a un objet sans collision et le 1 un avec une collision.

C'est ce que j'ai fait mais ma fenêtre ce ferme aussitôt ouverte. Et le problème viens de la condition bool.
Je vous post le code complet   

J'ai bien entendu redimensionner la carte car un tableau de 26/22 sa fait grand pour test le fonctionnement

Je remercie ceux pouvant m'aider.
#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>
#include <sstream>
#include <stdlib.h>
int LARGEUR_TILE = 40;
int HAUTEUR_TILE = 40;
int horloge =0;
int x;
int y;
int taillecase = 40;

using namespace std;
int main()
{
    sf::RenderWindow World(sf::VideoMode(800, 600), "tilemap");
World.setFramerateLimit(60);


sf::Texture myTexture;
    myTexture.loadFromFile("ressource/tile.png");


sf ::Texture Perso;
Perso.loadFromFile("ressource/zone.png");
sf::Sprite perso;
perso.setTexture(Perso);
perso.setPosition(160,160);
 int map[5] [5]
    {
      {4,4,4,4,4},
      {4,0,0,0,4},
      {4,0,0,0,4},
      {4,0,0,0,4},
      {4,4,4,4,4},

    };
bool masque [] =
{
      1,1,1,1,1,
      1,0,0,0,1,
      1,0,0,0,1,
      1,0,0,0,1,
      1,1,1,1,1
};


bool collision (bool masque []);
{
    if ( masque [ int (x/taillecase) + 3*int(y/taillecase) ] ==1 )
    {
        return true;
    }
    else
    {
        return false;
    }
}

///tuile 0 : route
    sf::Sprite mySprite(myTexture);
    mySprite.setTextureRect(sf::IntRect(0,0,40,40));
    sf::Sprite tuile0;
    tuile0 = mySprite;
///tuile 1 : herbe
    sf::Sprite mySprite1(myTexture);
    mySprite1.setTextureRect(sf::IntRect(40,0,40,40));
    sf::Sprite tuile1;
    tuile1 = mySprite1;
///tuile 2 : maison
    sf::Sprite mySprite2(myTexture);
    mySprite2.setTextureRect(sf::IntRect(80,0,40,40));
    sf::Sprite tuile2;
    tuile2 = mySprite2;
///tuile 3 : eau
    sf::Sprite mySprite3(myTexture);
    mySprite3.setTextureRect(sf::IntRect(120,0,40,40));
    sf::Sprite tuile3;
    tuile3 = mySprite3;
///tuile 4 : arbre
    sf::Sprite mySprite4(myTexture);
    mySprite4.setTextureRect(sf::IntRect(160,0,40,40));
    sf::Sprite tuile4;
    tuile4 = mySprite4;
///tuile 5 : pont
    sf::Sprite mySprite5(myTexture);
    mySprite5.setTextureRect(sf::IntRect(0,40,40,40));
    sf::Sprite tuile5;
    tuile5 = mySprite5;
    ///tuile 6 : pas d'idée
    sf::Sprite mySprite6(myTexture);
    mySprite6.setTextureRect(sf::IntRect(40,40,40,40));
    sf::Sprite tuile6;
    tuile6 = mySprite6;
    ///tuile 7 : sable
    sf::Sprite mySprite7(myTexture);
    mySprite7.setTextureRect(sf::IntRect(80,40,40,40));
    sf::Sprite tuile7;
    tuile7 = mySprite7;


///VUE///////////////////////////////////
sf::View view1;                      ///
///.////////////////////////////////////


///BOUCLE///////////////////////////////
    while (World.isOpen())
    {
        sf::Event event;
        while (World.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                World.close();
        }



if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
{
    perso.move(sf::Vector2f(4,0)) ;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
{
    perso.move(sf::Vector2f(-4,0)) ;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
{
    perso.move(sf::Vector2f(0,-4)) ;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
{
    perso.move(sf::Vector2f(0,4)) ;
}

World.clear();
for (int i = 0; i < 5; i++)
{
    for(int j = 0; j < 5; j++)
    {
        ///selon le code trouve dans le tableau on parametre le bon tile et on le colle sur l'ecran
        switch(map[i][j])
        {
            case 0:
            tuile0.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile0);
            break;
            case 1:
            tuile1.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile1);
            break;
            case 2:
            tuile2.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile2);
            break;
            case 3:
            tuile3.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile3);
            break;
            case 4:
            tuile4.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile4);
            break;
            case 5:
            tuile5.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile5);
            break;
            case 6:
            tuile6.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile6);
            break;
            case 7:
            tuile7.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile7);
            break;
        }
    }
}
view1.reset(sf::FloatRect(0,0,800,600));
sf::Vector2f position(400,300);
position.x = perso.getPosition().x + 20 - 400;
position.y = perso.getPosition().y + 20 - 300;
if ( position.x < 0)
{
    position.x = 0;
}
if ( position.x > 700)
{
    position.x = 800;
}
if ( position.y < 0)
{
    position.y = 0;
}
if ( position.y > 600)
{
    position.y = 600;
}
view1.reset(sf::FloatRect(position.x,position.y,800,600));
World.setView(view1);


World.draw(perso);


World.display();
    }
}
 

21
Graphique / Re : Tile map
« le: Juin 16, 2014, 10:10:45 am »
Problème résolut

22
Graphique / Re : Tile map
« le: Juin 15, 2014, 09:57:45 pm »
Bon je viens d'apprendre un truc merci beaucoup. Maintenant si j’enlève le "map" mon switch ne marche plus et je ne sais pas comment remplir les "cases",  car je ne comprend pas trop le tuto sfml 2.0.

23
Graphique / Re : Tile map
« le: Juin 15, 2014, 08:09:39 pm »
Bon sa fonctionne mais il j'ai des bug, certaine texture corresponde pas. De plus j'ai cette phrase
après un build :
      =>            c:/.........   warning: missing braces around initializer for 'int [8]' (-Wmissing-braces)

PS voici le code ( je le met pas en balise c++ ) car c'est quasi le même que le 1er et sa ferais un post sasser long

#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>
#include <sstream>
#include <stdlib.h>
int LARGEUR_TILE = 30;
int HAUTEUR_TILE = 30;
int main()
{
    sf::RenderWindow World(sf::VideoMode(600, 600), "tilemap");

sf::Texture myTexture;
    myTexture.loadFromFile("ressource/tuiles.png");

 int map[16][8]
    {
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2,
        0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0,
        1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
        0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
        0, 1, 1, 0, 2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 0, 0,
        0, 0, 1, 0, 1, 0, 2, 2, 0, 0, 1, 1, 1, 1, 2, 0,
        2, 0, 1, 0, 2, 0, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1,
        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    }; <= L'erreur ce situ ici



///BOUCLE///////////////////////////////
    while (World.isOpen())
    {
        sf::Event event;
        while (World.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                World.close();
        }

World.clear();
///tuile 0 : rouge
    sf::Sprite mySprite(myTexture);
    mySprite.setTextureRect(sf::IntRect(0,0,40,40));
    sf::Sprite tuile0;
    tuile0 = mySprite;
///tuile 1 : Maron
    sf::Sprite mySprite1(myTexture);
    mySprite1.setTextureRect(sf::IntRect(40,0,40,40));
    sf::Sprite tuile1;
    tuile1 = mySprite1;
///tuile 2 : Bleu
    sf::Sprite mySprite2(myTexture);
    mySprite2.setTextureRect(sf::IntRect(80,0,40,40));
    sf::Sprite tuile2;
    tuile2 = mySprite2;








for(int i = 0; i < 13; i++)
{
    for(int j = 0; j < 7; j++)
    {
        ///selon le code trouve dans le tableau on parametre le bon tile et on le colle sur l'ecran
        switch(map[i][j])
        {
            case 0:
            tuile0.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile0);
            break;
            case 1:
            tuile1.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile1);
            break;
            case 2:
            tuile2.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile2);
            break;



        }
    }
}

World.display();
    }
}

j'espère avoir de l’aide.

24
Graphique / Re : Tile map
« le: Juin 15, 2014, 03:51:02 pm »
Je cherche sur le net depuis ce matin et je ne comprend toujours pas comment assigner un sprite ( tuile ) a un chiffre comme le "0" du tableau.

J'implore donc de l'aide.  Vous n’êtes pas obliger de m'aider mais j'en serais très ravie

25
Graphique / [résolu]Tile map
« le: Juin 15, 2014, 02:51:42 pm »
Bonjour, je viens de me remettre a coder et je rencontre actuellement un problème de code :

#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>
#include <sstream>
#include <stdlib.h>
int LARGEUR_TILE;
int HAUTEUR_TILE;
int main()
{
    sf::RenderWindow World(sf::VideoMode(600, 600), "tilemap");

sf::Texture myTexture;
myTexture.loadFromFile("ressource/tuiles.png");

sf::Sprite mySprite(myTexture);
mySprite.setTextureRect(sf::IntRect(80,0,40,40));

 int map[16][8]
    {
        0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0,
        1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3,
        0, 1, 0, 0, 2, 0, 3, 3, 3, 0, 1, 1, 1, 0, 0, 0,
        0, 1, 1, 0, 3, 3, 3, 0, 0, 0, 1, 1, 1, 2, 0, 0,
        0, 0, 1, 0, 3, 0, 2, 2, 0, 0, 1, 1, 1, 1, 2, 0,
        2, 0, 1, 0, 3, 0, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1,
        0, 0, 1, 0, 3, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1,
    };

sf::Sprite tuile0;
tuile0 = mySprite;

///BOUCLE///////////////////////////////
    while (World.isOpen())
    {
        sf::Event event;
        while (World.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                World.close();
        }
World.clear();
for(int i = 0; i < 5; i++)
{
    for(int j = 0; j < 2; j++)
    {
        //selon le code trouve dans le tableau on parametre le bon tile et on le colle sur l'ecran
        switch(map[i][j])
        {
            case 0:
            tuile0.setPosition(i * LARGEUR_TILE, j * HAUTEUR_TILE);
            World.draw(tuile0);
            break;
        }
    }
}
World.display();
    }
}
 
 


Une fois exécuter ( pas d’erreurs ) je n'ai que sa :


26
Graphique / Re : coordonnée d'un sprit
« le: Mars 23, 2014, 05:07:04 pm »
effectivement c'est bien sa merci, j'avais trouver entre temps. Merci quand même

27
Graphique / [RESOLU] coordonnée d'un sprit
« le: Mars 23, 2014, 08:36:55 am »
bonjour, mon problème est celui-ci :

Récupérer la position X et Y d'un sprite pour la comparer a un autre. Je pense qu'il faut utiliser GetPosition, mais je suis pas sur qu'il me serve ici.

                 Merci de votre réponse/aide, car la je bloque  :'(

28
Graphique / Re : problème avec la POO
« le: Mars 22, 2014, 08:19:14 pm »
merci, Su ceux bonne fin de journée.

29
Graphique / Re : problème avec la POO
« le: Mars 22, 2014, 09:26:55 am »
Je sais qu'il faut que je lise un bon livre sur le c++, mais il en existe tellement et puis entre les bons et les qui servent à rien je m'y perd moi. Donc si tu en a un a me conseiller ( en français car j'ai un peut de mal en anglais ) ce serais cool.

Merci

30
Graphique / [resolu] problème avec la POO
« le: Mars 21, 2014, 07:27:22 pm »
Bonjour, depuis peut je me suis lancer dans l'architecture de mon ancien jeux en le structurant avec la POO.
Pour le moment je suis blocker au stade du fond d’écran.
voici mon code =>
vso.h :
#ifndef VSO_H
#define VSO_H
#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>
#include <sstream>
#include <stdlib.h>
#include <time.h>


using namespace std;

class vso
{
    public:
        void fond();
    private:

};

#endif // VSO_H
 

vso.cpp :

#include "vso.h"
#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>
#include <sstream>
#include <stdlib.h>
#include <time.h>


void fond()
{
            sf::Sprite backk;
            sf::Texture bac;
            bac.loadFromFile("sh.png");
            backk.setTexture(bac);
}

main.cpp :

#include <iostream>
#include <string>
#include "vso.h"

using namespace std;


int main()
{
sf::RenderWindow window(sf::VideoMode(800, 600), "[1.0] SPACE");

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

        window.clear();
        window.draw(backk);
        window.display();
    }
}

Et voici l'erreur sortie :

main.cpp|22|error: 'backk' was not declared in this scope

anything