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

Auteur Sujet: Problèmes physiques ( gravité, saut et rebonds )  (Lu 2745 fois)

0 Membres et 1 Invité sur ce sujet

MaxdeoxiS

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
Problèmes physiques ( gravité, saut et rebonds )
« le: Février 01, 2014, 04:17:03 pm »
Bonjour à tous,
Je m'intéresse à la réalisation d'un projet de jeu de volley ball en 2 dimensions, et pour cela j'utilise SFML.
Dans un premier temps je souhaite avoir un prototype permettant de :
- afficher deux shapes en forme de cercle, l'un représentant un personnage, l'autre le ballon;
- le cercle "personnage" étant situé en bas de l'écran, et pouvant uniquement se déplacer à gauche, à droite ainsi qu'effectuer un saut
- le cercle "ballon" qui apparait par ex. au milieu de l'écran et qui subit la gravité;il réagit de plus aux différentes collisions ballon/sol, ballon/murs et ballon/personnage

Ce que j'ai déjà:
- le cercle personnage qui bouge et qui peut sauter. Néanmoins, le but de mon projet est d'avoir un maximum de réalisme ( au niveau de la physique ).
Mon saut n'étant pas très réaliste, je me suis tourné vers les différentes équations que l'on peut voir en Terminale, par exemple:
y=y0 -(1/2*g*t*t) + v*t


- les différents tests de collisions
- les rebonds contre les murs
J'ai aussi quasiment les rebonds balle/balle mais j'attend d'avoir tout bien règler avant de tester.

Donc mes questions sont:
- vaut-il mieux utiliser monObjet.move(maVitesse) ou monObjet.setPosition(x,y) ?
- en essayant d'implémenter un saut réaliste ( plutôt une chute puisque la balle est initialement en l'air ) j'ai ceci:

if(inAir)
               speed.y+=k*grav*clock.getElapsedTime().asSeconds();
où k est une constante que j'ai fixé et grav est égale à 9.81

Cependant je n'arrive pas à bien gérer le cas où la balle/le joueur effectue un saut en partant du sol?

Merci d'avance pour vos conseils
Bonne journée ! :)

Arneast

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
    • E-mail
Re : Problèmes physiques ( gravité, saut et rebonds )
« Réponse #1 le: Février 02, 2014, 01:47:59 pm »
Salut !
Personnellement j'ai procédé un peu différemment dans mon projet ( et ça rend bien ).
Pour chaque entité "physique" je lui colle une vitesse ( x et y ) , a chaque tour de loop :
je lui applique les accélérations selon les entrées du joueur , les frottements air/solide , la gravité , donc je modifie sa vitesse en conséquence.
Puis quand j'ai terminé de mettre a jour sa vitesse je viens déplacer sa hitbox à l'endroit désiré , je détecte les collisions avec les autres objets physiques , s'il y en a j'applique des transferts de force ( donc de vitesse ) puis enfin je lui effectue un move avec sa vitesse.
Bon courage  ;D

linke

  • Newbie
  • *
  • Messages: 17
    • Voir le profil
Re : Problèmes physiques ( gravité, saut et rebonds )
« Réponse #2 le: Février 02, 2014, 01:56:01 pm »
pour ta premiere question,
monObjet.move(maVitesse)
monObjet.setPosition(x,y)
je pense que le resultat est le meme, personnelement j'utilise la premiere
pour ta 2 eme question on aimerais avoir un peut de code pour se faire une idee...

ps:meme pour une ligne de code, prend l'habitude d'utiliser les balises.... :-\