Vitesse/mouvement en c++
overlife @ Agriculteur
1593pts
Inscrit le: 07 juin 2013
Age: 30
Messages: 482
Navigateur : n.c.Hors ligne
Posté le: 15 mars 2014 à 18:27
Coucou à tous
J'explique le problème !^^
J'ai un projet, un cassbrik en c++ a programmer a l'aide du bibliothèque qui ce sert de celle de qt.
Niveau graphique, dessin de la boule, briques, palet, tous est bon (je pense).
Mais la ou je bloque, et c est peu de le dire, c est comment faire bouger tout ce beau monde ?
Je ne vous donne pas mon code pour l'instant, car je cherche avant tout un aide "intellectuel" que vraiment la réponse, j'aimerais comprendre, surtout sur ces deux points là, vitesse et direction de la boule.
Toutes petites informations sont les bienvenue, même minimes
Help ^^
overlife @ Agriculteur
1593pts
Inscrit le: 07 juin 2013
Age: 30
Messages: 482
Navigateur : n.c.Hors ligne
noursferoce @ Ouvrier agricole
449pts
Inscrit le: 06 avril 2013
Messages: 201
Navigateur : n.c.Hors ligne
Posté le: 16 mars 2014 à 20:53
Bonjour,
Sans vouloir t'offenser ce n'est pas facile de t'aider, tu ne donnes que des informations très parcellaires.
Je te le dis tout de suite j'ai pas mal codé un temps en C/C++ mais jamais de jeux, donc je vais faire ce que je peux.
Pourrais-tu déjà nous donner le nom de ta bibliothèque ?
Je ne sais pas comment est fichu ton code, mais typiquement tu devrais avoir au moins deux threads : Le premier qui gère le rafraîchissement de ton affichage qui va donc faire bouger tes sprites. Le deuxièmes qui va se charger de dépiler tes events et de réagir en fonction.
Pour le mouvement en lui même, si tu as fais un peu de physique si je te dis que la vitesse est la dérivée de la position ça doit te dire quelque chose.
Prenons par exemple un objet qui se déplace selon un axe x qui est initialement en position x0 avec une vitesse initiale vx0. Un instant dt après ton objet va se trouver dans la position suivante :
x0+vx0*dt
Dans ton programme cet instant dt va correspondre à l'intervalle de temps entre deux rafraîchissements.
Tu peux généraliser ça dans les trois directions de l'espace.
Dans ton post tu parles de vitesse et de direction. Pour reprendre l'exemple précédent la direction dans laquelle va se déplacer ton mobile va dépendre du signe de la vitesse. Si ta vitesse est positive ton mobile va se déplacer dans le sens des x croissants, et dans le sens des x décroissants si v est négative.
Que va t'il se passer lors d'un changement de direction, par exemple quand ta bille casse une brique?
Prenons deux instants consécutifs, juste avant de toucher la brique et juste après. La position ne va pas changer ta bille restera au même endroit, par contre il va falloir que tu changes ta vitesse pour faire repartir ta bille dans une autre direction.
Dans ton programme il va falloir traduire ça de manière suivante : Si tu as un event "bille touche brique"
alors changement de la vitesse.
Je ne sais pas si ça t'éclaircit un peu les idées, autrement tu peux aller faire un tour sur developpez.com qui est un site francophone avec plein de "vrai" programmeurs (ce que je ne suis pas) et plein de tutos bien fait.
Bon courage
overlife @ Agriculteur
1593pts
Inscrit le: 07 juin 2013
Age: 30
Messages: 482
Navigateur : n.c.Hors ligne
overlife @ Agriculteur
1593pts
Inscrit le: 07 juin 2013
Age: 30
Messages: 482
Navigateur : n.c.Hors ligne
overlife @ Agriculteur
1593pts
Inscrit le: 07 juin 2013
Age: 30
Messages: 482
Navigateur : n.c.Hors ligne
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum