Gerer la collision entre deux balles
Posté le 01/01/2015 18:36
Salut à tous !
J'avais déjà parlé de ce projet a Fab mais je lavais abandonné (pour je ne sais quel raison
) mais j'aimerais bien le reprendre !
Mon but etant de faire une petite lib permettant de gerer les collisions et les rebondissements entre 2 balles afin de... euh... pouvoir faire des jeux contenant des ballons facilement on va dire
En fait j'applique une formule toute simple (je bloque dès le début :boulet: ) mais je sais qu'elle ne marche pas, je sais ou ca marche pas mais je ne sais pas comment changer la formule afin de la rendre opérationnelle
le tout petit bout de code ici a pour but de detecter une collision entre deux balles :
[brown]#include [gray]"fxlib.h"[/gray][/brown]
[brown]#include [gray]"MonochromeLib.h"[/gray][/brown]
[brown]#include [gray]"stdio.h"[/gray][/brown]
[purple]int[/purple] AddIn_main(int isAppli, unsigned short OptionNum){
[purple]int[/purple] balle2[3]={[maroon]1[/maroon], [maroon]1[/maroon], [maroon]10[/maroon]}, balle1[3]={[maroon]20[/maroon], [maroon]30[/maroon], [maroon]15[/maroon]};
[purple]int[/purple] vecteur2_x=[maroon]1[/maroon], vecteur2_y=[maroon]1[/maroon], vecteur1_x=[maroon]1[/maroon], vecteur1_y=-1;
Bdisp_AllClr_DDVRAM();
[b][blue]while[/blue][/b](1){
balle1[0]+=vecteur1_x;
balle1[1]+=vecteur1_y;
balle2[0]+=vecteur2_x;
balle2[1]+=vecteur2_y;
ML_clear_vram();
[b][blue]if[/blue][/b](((balle1[0]-balle2[0])^2)+((balle1[1]-balle2[1])^2)<=(balle1[2]+balle2[2])^2){
PrintMini(1, [maroon]1[/maroon], [gray]"collision"[/gray], [maroon]1[/maroon]);
}
ML_circle(balle1[0], balle1[1], balle1[2], [maroon]1[/maroon]);
ML_circle(balle2[0], balle2[1], balle2[2], [maroon]1[/maroon]);
ML_display_vram();
Sleep(100);
}
}
[brown]#pragma section _BR_Size[/brown]
unsigned long BR_Size;
[brown]#pragma section[/brown]
[brown]#pragma section _TOP[/brown]
[purple]int[/purple] InitializeSystem(int isAppli, unsigned short OptionNum)
{
[b][blue]return[/blue][/b] INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}
[brown]#pragma section[/brown]
voila c'est tout
. Ici la premiere (donc balle1[0]) case de chaque tableau balle est sa position X, la deuxieme (balle[1]) représente son Y et balle[2] représente le rayon de la balle
Voila si vous avez un quelconque merci de me la soumettre
Citer : Posté le 02/01/2015 15:30 | #
Oui je connais le Xor mais je ne comprends pas en quoi il est noté ^2
le Xor est noté ^
après c'est peut etre plus joli et plus propre mais si ca doit rester accessible a tout le monde je pense que c'est plus compréhensible sans structures
:double facepalm: :triple facepalm: ........ :n facepalm:
Tu n'as absolument rien compris aux structures
Citer : Posté le 02/01/2015 15:31 | #
Ah oui ! Merci smash c'était exactement ce que fab m'avais dit en plus x) (j'avais paumé le schéma comme un con...)
Je vais essayer de continuer tout seul à partir de ca et si jamais je n'y arrive toujours pas (ce qui arrivera probablement...) je vous exposerai mon problème merci en tout cas
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 02/01/2015 15:45 | #
Les structures n'ont rien de véritablement utiles, ils n'ont pas d'utilité complexes tel que des conditions ou des fonctions,
Ils ne servent qu'à faciliter le code et à le rendre plus lisible
Ajouté le 02/01/2015 à 15:45 :
et pis,
si tu veux le rendre accessible à tout le monde, les structures c'est quand même mieux
Ajouté le 02/01/2015 à 15:49 :
et si tu me répond qu'on apprend les tableaux avant les structures,
sache que quand on veut bien maîtriser le C, on va jusqu'à l'allocation dynamique
Citer : Posté le 02/01/2015 17:16 | #
Je comprends pas bien le lien entre les deux dernières phrases à vrai dire ^^°...
Citer : Posté le 02/01/2015 18:42 | #
sur le chat, darkysun a répondu "tu sais qu'on apprend les tableaux avant les structures? :p" du coup, je lui est répondu sur son topic