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

Auteur Sujet: Question pour les deplacements  (Lu 1826 fois)

0 Membres et 1 Invité sur ce sujet

Ryohai

  • Invité
Question pour les deplacements
« le: Mai 07, 2012, 01:50:33 am »
Bonjour à tous !
Je post sur ce forum car je cherche comment déplacer un sprite en fonction d'un autre.
Je m'explique :
J'ai des rockettes et un boss, je cherche à déplacer le boss (de droite à gauche) de sorte à ce qu'il se déplace si une rockette arrive sur lui.


Ps : Si vous voulez des parties de mon code, faites le moi savoir :p


Merci d'avance !

kamui

  • Sr. Member
  • ****
  • Messages: 291
    • Voir le profil
Re : Question pour les deplacements
« Réponse #1 le: Mai 07, 2012, 04:22:55 pm »
en gros tu veux du code pour une IA, c'est ça ?

Si tu avais déjà un début de code ça serait mieux, mais typiquement ce que tu peux faire, c'est vérifier (pour une IA très basique) que la position de ton boss ne soit pas sur la trajectoire de tes roquettes (selon le sens de ton jeu, tu vérifie en y ou en x si les deux objets n'ont pas une valeur en y ou en x trop proche, et tu tiens compte de la largeur des deux sprites dans tes calculs)..

Ryohai

  • Invité
Re : Question pour les deplacements
« Réponse #2 le: Mai 07, 2012, 06:39:36 pm »
Oui c'est ça , je veux vérifier en x mais je ne sais pas comment faire :/

kamui

  • Sr. Member
  • ****
  • Messages: 291
    • Voir le profil
Re : Question pour les deplacements
« Réponse #3 le: Mai 07, 2012, 08:38:08 pm »
Je suis assez dérouté... tu as des roquettes et un boss à l'écran, ce qui implique un minimum au niveau de la gestion des sprites, et tu ne vois pas comment réaliser cela... tu reprends le (flambeau) projet de quelqu'un ?

Sinon, je ne sais pas quelle version de SFML tu utilise, et je ne sais pas encore s'il y a des différences dans les noms des méthodes par exemple, mais en 1.6 :

int bossCoteGauche = boss.GetSprite().GetPosition().x ;
int bossCoteDroit = boss.GetSprite().GetPosition().x + WIDTH //une constante sur la largeur de ton image
int roquettePosition = roquette.GetSprite().GetPosition().x;
if ( bossCoteGauche < roquettePosition && bossCoteDroit > roquettePosition)
  //Danger
  //on s'écarte...
  boss.GetSprite().Move( ... ); 

Bon bah là si tu vois toujours pas alors c'était trop tôt pour commencer à coder un JV ;)

Ryohai

  • Invité
Re : Question pour les deplacements
« Réponse #4 le: Mai 07, 2012, 09:53:59 pm »
Merci non j'ai commencer de zéro ce projet :s

Oui comme ça c'est mieux est je te remercie  :)