begin process at 2010 02 10 09:32:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

Rebond d'une balle sur un mur ...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Rebond d'une balle sur un mur ...

samedi 11 février 2006 à 14:31:28 | Rebond d'une balle sur un mur ...

potate

Bonjour,

    je suis en train de développer  un jeu comportant une bille sur un plateau et je me suis pencher sur la question des rebonds. Je cherche (mes recherches étant vaines) un moyen , sachant que je n'est que des mûrs verticaux mais qui peuvent être dans tous les sens, de calculer les  nouvelles composantes de ma vitesse  pour ainsi créer des rebonds réalistes.

     J'attend vos réponses  ^^

samedi 11 février 2006 à 20:24:01 | Re : Rebond d'une balle sur un mur ...

DeltaFX

 Si tu pars du principe que le contact de la bille avec le mur est ponctuel,  que le mur est 100% elastique (ta bille s'enfonce pas dedans pour y rester collée, meme infimement), et au  prix de grosses simplifications quant a la question du "rouler-sans-glisser / glisser-sans-rouler" (bon bref c'est un petit jeu, pas de la simulation numérique pointute) alors c'est relativement simple:

Alors faudra a chaque instant : calculer la position de ta bille a l'instant d'apres, verifier que le vecteur déplacement entre T et T+1 ne coupe pas un mur, et si c'est bon tu updates la position de ta bille. Si ca coupe un mur ben hop, mathématiquement parlant tu te mets dans le repere du mur, et c'est comme un mirroir qui réfléchit un rayon de lumière : la trajectoire de ta bille apres rebond , c'est son vecteur d'arrivé symétrique par rapport a la perpendiculaire au mur. elle parcours la meme distance que sans mur, mais avec un changement de trajectoire.

Va pas croire que c'est fini, il faut recommencer  ( on est toujours entre T et T +1),  des fois qu'apres ce premier rebond entre elle rebondisse sur un autre mur.... donc tu n'obtiens la position a T+1 qu'apres avoir tester tout les rebonds susceptibles de se produire entre T et T+1.

Le tout dans un Repeat {-tout le bigntz-} until { ce que tu veux : Energie cinetique = 0 si tu gères les frottements (proportionnels à V ), la bille dans la cible etc etc etc).

Et Ouala.
dimanche 12 février 2006 à 13:40:55 | Re : Rebond d'une balle sur un mur ...

Francky23012301

Membre Club
Salut DeltaFX, il parle de vitesse pas de position ( :)). Potate : il faut utiliser le principe de la conservation de l'impulsion (p=mV avec m la vitesse de ta bille et V son vecteur vitesse. Ta bille a tjs le meme poids avant ou apres le rebond donc elle a la meme vitesse avant et après. Maintenant au niveau de la position si c'est ce que tu veux : au niveau du point d'impact dans le mur, tu traces une droite perpendiculaire au mur qui passe par ce point. Cette droite forme un angle avec la trajectoire (rectiligne) de ta balle. Et bien la nouvelle trajectoire de la balle sera la droite symétrique de la trajectoire avant le rebond avec cet axe perpendiculaire : - - - - - - - - - - - - - -------------- ton mur J'espère que mon schéma est clair ? Salut à vous A+
dimanche 12 février 2006 à 14:13:50 | Re : Rebond d'une balle sur un mur ...

DeltaFX

Dis Frankyky vitesse, position et accélération sont liés, que tu le veuilles ou non. C'est sympa de repéter ce que j'ai écris en langage humain
lundi 13 février 2006 à 13:37:11 | Re : Rebond d'une balle sur un mur ...

potate

Certes je comprend le principe mais j'ai un peu du mal à trouver l'implementation qui va bien ...
Il y a pour moi plusieurs manières  telles qu'une rotation au point d'impact , une symétrie axiale mais je ne voit pas comment les implémenter ... : S

PS: Merci de vos réponses ;)
lundi 13 février 2006 à 18:48:08 | Re : Rebond d'une balle sur un mur ...

potate

    C'est encore moi, en fait je pense avoir presque résolu mon probléme cependant j'utilise une rotation pour calculer mon nouveau vecteur vitesse mais pas moyen de retrouver les équations permettant de calculer les coordonnées de l'image d'un point par une rotation d'angle et de centre connu :S.
    Si quelqu'un a la solution merci de me la faire parvenir ;) ...

   
lundi 13 février 2006 à 18:48:28 | Re : Rebond d'une balle sur un mur ...

potate

    C'est encore moi, en fait je pense avoir presque résolu mon probléme cependant j'utilise une rotation pour calculer mon nouveau vecteur vitesse mais pas moyen de retrouver les équations permettant de calculer les coordonnées de l'image d'un point par une rotation d'angle et de centre connu :S.
    Si quelqu'un a la solution merci de me la faire parvenir ;) ...

   
lundi 13 février 2006 à 21:01:15 | Re : Rebond d'une balle sur un mur ...

DeltaFX

Euh.... autant c'est un forum delphi d'entraide en delphi sur delphi, autant les bases de la trigo, t'es pas dispensé de t'en souvenir hein....

Bien tenté le morcelage du problème : je poste une question sur la partie OpenGl en esperant qu'une ame charitable va me l'ecriture à ma place,

Je fais de meme pour le moteur physique du problème.....

.... On t'a vu !  :D

lundi 13 février 2006 à 21:36:24 | Re : Rebond d'une balle sur un mur ...

potate

   Bien jolies tes réponses, d'une part je partage ce compte donc ce n'est pas moi qui ai posé les questions en ce qui concerne l'OpenGl, dont cependant les réponses ne répondent, en somme, pas tellement à l'attente de la question d'où les demandes de précision. Sinon en ce qui concerne mon probléme de trigonométrie, si toute fois tu l'as bien compris,  ( peut être que pour toi les mathématiques sont si faciles ) rien ne t'oblige d'y répondre ... 
    
mardi 14 février 2006 à 01:05:52 | Re : Rebond d'une balle sur un mur ...

cirec

Membre Club Administrateur CodeS-SourceS

Salut,
voici un petit exemple qui n'utilise ni la trigo ni la vitesse ni rien d'ailleur mais
qui simule le déplacement d'une balle avec un changement de direction dès qu'il y a contacte avec un bord

c'est très très simpliste mais comme tous le monde à l'air d'être un peut avare sur un bout de code c'est mieux que rien
C'est tellement simpliste que ça se passe de commentaire


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Balle: TShape;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
  DLeft : Boolean = True;
  DBottom : Boolean = True;

implementation

{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 If DLeft and (Balle.Left+Balle.Width < ClientWidth-5) Then
   Balle.Left:=Balle.Left+5
 Else  DLeft := False;
 If Not DLeft and (Balle.Left > 1) Then
   Balle.Left:=Balle.Left-5
 Else DLeft := True;

 If DBottom and (Balle.Top+Balle.Height < ClientHeight -5) Then
 Balle.Top := Balle.Top + 5
 Else DBottom := False;
 If not DBottom and (Balle.Top > 5) Then
 Balle.Top := Balle.Top - 5
 Else DBottom := True;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 Doublebuffered := True;
end;

end.

@+
Cirec

1 2

Cette discussion est classée dans : balle, mur, rebond, rebonds


Répondre à ce message

Sujets en rapport avec ce message

Problème de rebond dans un casse-brique [ par Masahiro2832 ] Bonjour, je suis étudiant en informatique et dans le cadre d'un cours sur la gestion de projet j'ai à réalisé un jeu de casse-brique.J'arrive a déplac lancer une balle [ par ptifranfran ] Je suis en train de réaliser un petit jeu où un joueur doit lancer une balle. Il doit entrer l'angle de tir et la vitess. J'aimerai que cette balle dd Shape + Timer illusion d'une balle qui rebondit [ par ozzdu38 ] Bonjour, Pour un project Delphi je doit crée un Shape qui donne l illusion de rebondire dans le formulaire a l'aide d'un Timer pour cela je doit tirer


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales