Bonjour tout le monde,
J'ai un problème avec un sf::rectangleshape qui n'apparaît pas à l'écran. Vous allez me dire "T'as oublié le draw" mais non, d'ailleurs je le fais d'une façon un peu sale qui consiste à appeler directement un pointeur vers la fenêtre principale. Allez voila le code:
//Avant tout, la position de leftdoor est -500,0 et rightDoor 1000,0
else if(une condition que j ai vérifiée: elle marche)
{//Boucle while : tout le reste est censé rester immobile
while(leftDoor->getPosition().x < 0.f) //BAhaha c'est sale! Je sais merci.
{
leftDoor->move(1000.f * Var.deltaTime , 0.f); //leftDoor est un RSPrite, taille 500x600, et Var.toWindow est un sf::renderwindow* de taille 1000x600
rightDoor->move(-1000.f * Var.deltaTime, 0.f); //rightDoor idem: 500x600
Var.toWindow->clear(); //Var.toWindow est un pointeur global qui pointe vers l'unique fenetre de l'application
Var.toWindow->draw(*leftDoor); //la fonction draw arrive
Var.toWindow->draw(*rightDoor);
std::cerr << leftDoor->getPosition().x << " " << leftDoor->getPosition().y << std::endl;
}
leftDoor->setPosition(0,0);
rightDoor->setPosition(500,0);
//D'autres trucs encore
}
voila pour mon fichier Menu.cpp
Pour que vous puissiez comprendre je vous met mon RSprite.hpp
#pragma once
#include <SFML/Graphics.hpp>
#include <iostream>
class RSprite : public sf::Drawable
{
public:
RSprite(const std::string&, const float& width, const float &height);
//Des methodes
virtual void draw(sf::RenderTarget &target, sf::RenderStates states) const
{
target.draw(*m_Rshape);
}
private:
sf::RectangleShape *m_Rshape;
sf::Texture *m_texture;
};
Ce a quoi je m'attendais c'était que leftdoor vienne de la gauche et move jusu'a couvrir la moitié de l'écran et idem pour rightDoor.
Ce qui se passe, c'est que lorsque la condition est effectuée, tout se freeze le temps que les doors arrivent, mais elles, n'apparaîssent pas à l'écran
J'espere que quelqu'un pourra m'aider
Merci