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

Auteur Sujet: [Résolu] Effacer un objet quand celui ci sort de l'écran  (Lu 1855 fois)

0 Membres et 2 Invités sur ce sujet

OualidH38

  • Newbie
  • *
  • Messages: 46
    • Voir le profil
    • E-mail
Bonjour à tous,
Je suis en train de coder un petit rpg dans lequel le personnage est capable de lancer des sorts et j'ai quelques questions:
Je stock chaque sorts(projectiles) créé dans un std::vector<Projectile> AllProjectile, et j'aimerais effacer du tableau chaque projectile se retrouvant hors écran mais voilà j'ai du mal.

J'ai essayé de récupérer le sf::IntRect de ma vue et de le comparer avec la position des projectiles:
for(int i =0; i < AllProjectile.size(); i++)
{
if(le projectile se trouve dans le IntRect)
{
   NE RIEN FAIRE
}
else
{
   AllProjectile.erase(AllProjectile.begin() + i);//On efface le projectile qui se trouve en dehors de la vue
}

//La manière dont je récupère le sf::IntRect
window.getViewport(window.getView);

//j'ai aussi essayé avec ça mais cela ne fonctionne pas non plus
window.getViewport(window.getDefaultView);
 

Mais bon cela fonctionne mal, les projectiles sont bien détruits une fois sorti de l'écran mais la zone semble fixe, si je déplace mon personnage et que la vue se déplace(scrolling) les projectiles seront toujours détruits au niveau de la vue de départ.

J'ai besoin d'aide s'il vous plait.
Merci
« Modifié: Mai 04, 2014, 08:13:57 pm par OualidH38 »

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Effacer un objet quand celui ci sort de l'écran
« Réponse #1 le: Mai 04, 2014, 06:15:50 pm »
Le viewport, c'est la place que prend ta vue sur ta fenêtre. Donc même si tu scroll ta vue, elle prend toujours la même place sur la fenêtre.

Si tu veux créer le rectangle englobant de ta fenêtre tu dois le calculer toi-même avec getCenter et getSize. (ou plus compliqué si tu rotate ta vue)
« Modifié: Mai 04, 2014, 06:51:07 pm par G. »

OualidH38

  • Newbie
  • *
  • Messages: 46
    • Voir le profil
    • E-mail
Re : Effacer un objet quand celui ci sort de l'écran
« Réponse #2 le: Mai 04, 2014, 08:11:25 pm »
Merci pour ton aide c'est bon ça fonctionne, j'étais pas au courant pour le viewport encore merci!  ;D

Sujet Résolu  ;)