Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Get position marche pas  (Lu 2360 fois)

0 Membres et 1 Invité sur ce sujet

otak

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Get position marche pas
« le: Avril 20, 2017, 06:42:58 pm »
Hello j'ai un problème avec la commande sprite.getPosition, c'est à dire qu'il me renvoie toujours la même position, donc 0 ; 0  :'(
Quelqu'un aurait une de quoi cela peut-il s’agir ?
Merci ;) 

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Get position marche pas
« Réponse #1 le: Avril 20, 2017, 07:17:17 pm »
De ton code, très probablement. Donc sans le voir on ne pourra pas grand chose pour toi...
Laurent Gomila - SFML developer

otak

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Get position marche pas
« Réponse #2 le: Avril 20, 2017, 09:27:34 pm »
Voici mon code :
//class/header.h

#ifndef HEADER_H
#define HEADER_H

#include <string>
#include <SFML/Graphics.hpp>

class player{
private:
    sf::Texture texture;

public:
    sf::Sprite sprite;
    void setTexture(std::string tex);

};
#endif//HEADER_H

//class/header.cpp

#include <SFML/Graphics.hpp>
#include "header.h"

void player::setTexture(std::string tex){
    player::texture.loadFromFile(tex);
    player::texture.setSmooth(true);
    player::sprite.setTexture(player::texture);
}

//main.cpp

#include <SFML/Graphics.hpp>
#include <iostream>
#include "class/header.h"

sf::RenderWindow window;

player p1;

std::cout << "Game started !"<<std::endl;
window.create(sf::VideoMode(1280, 720), "Arpg", sf::Style::Close | sf::Style::Titlebar);
window.setPosition(sf::Vector2i(175,75));
window.setFramerateLimit(60);

p1.setTexture(sprites/player.png);
p1.sprite.setPosition(50.0f, 50.0f);

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

        p1.sprite.move(1, 0);
        std::cout << p1.sprite.getPosition().x << ", " << p1.sprite.getPosition().y <<std::endl;

        window.draw(p1.sprite);
        window.display();
        window.clear();
    }
« Modifié: Avril 21, 2017, 06:28:05 am par Laurent »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Get position marche pas
« Réponse #3 le: Avril 21, 2017, 06:35:57 am »
Ton code (corrigé et complété) fonctionne très bien chez moi.

#include <string>
#include <SFML/Graphics.hpp>

class player{
private:
    sf::Texture texture;

public:
    sf::Sprite sprite;
    void setTexture(std::string tex);

};

void player::setTexture(std::string tex){
    player::texture.loadFromFile(tex);
    player::texture.setSmooth(true);
    player::sprite.setTexture(player::texture);
}

#include <iostream>

int main()
{
    sf::RenderWindow window;

    player p1;

    std::cout << "Game started !"<<std::endl;
    window.create(sf::VideoMode(1280, 720), "Arpg", sf::Style::Close | sf::Style::Titlebar);
    window.setPosition(sf::Vector2i(175,75));
    window.setFramerateLimit(60);

    p1.setTexture("sprites/player.png");
    p1.sprite.setPosition(50.0f, 50.0f);

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

            p1.sprite.move(1, 0);
            std::cout << p1.sprite.getPosition().x << ", " << p1.sprite.getPosition().y <<std::endl;

            window.draw(p1.sprite);
            window.display();
            window.clear();
        }

    return 0;
}
Laurent Gomila - SFML developer

otak

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Get position marche pas
« Réponse #4 le: Avril 21, 2017, 11:35:51 am »
J'ai réécrit mon script et tout fonctionne.
Merci pour ton aide.
Et sinon comment on fait pour utiliser la coloration syntaxique sur le forum stp.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Get position marche pas
« Réponse #5 le: Avril 21, 2017, 11:46:22 am »
Citer
Et sinon comment on fait pour utiliser la coloration syntaxique sur le forum stp.
Tu déroules la liste "code" qui se trouve en haut à droite des boutons d'édition de post, et tu choisis un langage.
Laurent Gomila - SFML developer

otak

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Get position marche pas
« Réponse #6 le: Avril 21, 2017, 05:18:25 pm »
ha ok merci

 

anything