Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème de rebond dans un casse-brique [ Algorithme / Autre ] (Masahiro2832)

dimanche 4 mai 2008 à 23:16:34 | Problème de rebond dans un casse-brique

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éplacer la balle, la faire rebondir sur les mur et savoir quand une brique est touchée et doit donc être retirée, mon problème je situe juste après ceci, il me faut faire rebondir la balle et je n'y arrive que partiellement, c'est un rebond tout simple que j'effectue. une image sera plus simple pour expliquer précisément mon problème.

shema problème rebond

Afin d'éviter de casser plusieurs briques je vérifie la futur position de ma balle et donc j'excute le rebond avant qu'elel entre dans la zone de la brique en réalité. Seulement en fonction de la "zone" dans laquelle est ma balle avant de toucher la brique, je na'rrive pas a déterminer le rebond. Les 4 "zone" notée "bug" sur mon dessin sont problèmatique, les autres sont simple à rraiter je n'a qu'à inverser mon Vx ou mon Vy en fonction du coté touché. Cependant pour les coins ce n'est pas aussi simple ...

J'ai tenté 4 ou 5 façon différente d'aborder le sujet, j'ai demandé à un ami au final et sa solution assez complèxe avec une formule mathématique assez impressionnante ne fonctionne pas ... J'aurais donc souhaité savoir comment l'on procèdre d'habitude pour déterminer un rebond ou bien même la façon habtiuelle de vérifier la collision entre 2 objet, je suis assez perdu j'avoue que je commenc a déespérer et la limite pour rendre le travail arrive à son therme. Sur le papier mon code aurait du fonctionné, lrosque la balle arrive dans une zone pouvant touché le coin j'avais pensé en tout premier lieu à vérifier si mon Vy était plus grand que mon Vx, cela permet logiquement de savoir si la ball partira plus vers le bas / haut de la brique ou vers la gauche / droite non ? Visiblement je me suis trompé queqlue part car ca ne marche pas...


Donc au final après mon beau paté de texte ce que je voudrais savoir c'est quelle façon utilise-t-on habituellement pour faire rebondir un objet en movuement sur un autre ? ( Si c'est nécessaire je peux fournir mon code mais je pense que je suis mal parti à un moment ou un autre donc je préfère poser une question "générale"...)


Merci d'avance pour l'attention que vous preterai à mon problème ^^

PS : Désolé si je suis pas dans la bonen section je savais pas trop ou poster ce problème ...

dimanche 4 mai 2008 à 23:19:09 | Re : Problème de rebond dans un casse-brique

Masahiro2832

Hum visiblement l'image a pas été prise par le système je met le liens normal ici :

http://img244.imageshack.us/my.php?image=problemerebondcassebriqab4.png


Désolé pour le double post ...

dimanche 4 mai 2008 à 23:42:23 | Re : Problème de rebond dans un casse-brique

Francky23012301

Membre Club
Salut,

Tu peux utiliser la réflection pour traiter le sujet. Sinon il faut utiliser la théorie des collisions et c'est quelque chose d'assez complexe




lundi 5 mai 2008 à 02:00:29 | Re : Problème de rebond dans un casse-brique

f0xi

Membre Club Administrateur CodeS-SourceS

unité Windows :

PtInRect
PtInRegion
RectInRegion

voir aussi dans l'aide du SDK windows : region, rect, point etc





lundi 5 mai 2008 à 09:50:39 | Re : Problème de rebond dans un casse-brique

Masahiro2832

Merci f0xi, c'est tout  à fait ce qu'il me faut mais j'ai malheureusement du mal à comprendre l'utilisation de ces fonctions et ce malgré l'exemple plutôt bien commenté que j'ai trouvé, tu me dis de voir dans l'aide du SDK windows, saurais-tu m'indiquer comment la consulter s'il te plait ?

lundi 5 mai 2008 à 20:37:33 | Re : Problème de rebond dans un casse-brique

f0xi

Membre Club Administrateur CodeS-SourceS

le SDK windows est disponible avec Delphi (installation custom -> aide -> SDK windows)

sinon il reste la MSDN consultable en ligne même si les codes de fonctions sont en C++ c'est pas grave les convertions Delphi sont 1:1 la plus part du temps.

PtInRect : renvois true si TPoint est dans TRect, sinon false
PtInRegion : renvois true si TPoint est dans HRGN (handle de region), sinon false
RectInRegion : renvois true si TRect est dans HRGN (handle de region), sinon false

par contre, y'a pas RegionInRegion, j'ai pas trouver ... dommage.

mais bon la region permet de faire une region hexagonale sur la balle (plus precis qu'un rectangle) et le Rect permet de stocker une Brique.

donc Brique dans TRect, Balle dans region donc :

if RectInRegion(Brique.Rect, Balle.Region) then
begin
   Brique.Kaputt;
   Balle.Pong;
end;

je te conseil de faire des objets avec les briques et balles pour mieux les controller et inclure les methodes et propriété propres a elle (ré-utilisabilitée du code!)

sinon tu peu toujours te developper un moteur physique minimaliste, mais bon, y'en as deja des existant, ODE par exemple mais il doit etre surtout pour la 3D.

pour l'angle de renvois de la balle par la barre, je pense qu'il faut voir un truc comme ça :


  






dimanche 11 mai 2008 à 17:42:47 | Re : Problème de rebond dans un casse-brique

Masahiro2832

Merci pour votre précieuse aide je m'en suis à peu prêt sortis, merci :)



Cette discussion est classé dans : problème, arrive, balle, brique, rebond


Répondre à ce message

Sujets en rapport avec ce message

Rebond d'une balle sur un mur ... [ par 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 ( problème avec OLE [ par OrsE ] Salut tout le monde! Voilà j'affiche un document word dans un tolecontainer, ça marche sans soucis. Je crée l'objet dans le container en faisant Cre Tableau dynamique et depassement de capacité ??? [ par elguevel ] Voila pour être bref, j'utilise une fonction recursive qui va charger tout les fichiers de mon disque dans un Tableau. (déja vous vous dite.. "ce mec problème d'une debutante [ par mistro ] Je ss une debutante en delphi et j'ai p'tit problème,j'ai besoin de votre aide.j'ai un dbgrid dans un form et un champs text dans un autre,je voudrais problème de scrollbar avec pagecontrol [ par Maniaxman ] Salut, je fait une application avec un pagecontrol, et sur mes tabsheet j'ai beaucoup de choses à mettre, du coup j'aimerais mettre une barre de défi Problème avec les Word... [ par OrsE ] Salut tout le monde. Cette question fait suite à celle-là: http://www.delphifr.com/forum.v2.aspx?ID=518145 J'ai besoin de savoir si word est quitté o Une pause dans une procedure [ par webident ] Voila en quelques mots mon problème, J'ai une procedure qui traite des documents qui sont sauver dans une DB informix via BDE, pour certain, j'aurais Débordement de pile [ par la_gavorade ] Salut à tous, J'ai un problème inédit (pour moi...). Dans un petit programme tout bête, j'ai un message "Débordement de pile" dès que j'arrive à la problème avec combobox [ par saravana ] bonjour a tous je souhaite réaliser un convertisseur de valeurs(cm;mm;m....)j'ai :Edit1Combobox1Combobox2button1et Edit2je rentre un chiffre dans edit problème lors de la création d'un module de recherche [ par saravana ] salut a tous je souhaite réaliser un module de rechercheen appuyant sur button1 les mots saisis dans edit1 seront recherchés dans un richedit(caché) e


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.