HUSNET
Messages postés6Date d'inscriptionmercredi 2 mars 2005StatutMembreDernière intervention 4 mars 2005
-
2 mars 2005 à 21:23
HUSNET
Messages postés6Date d'inscriptionmercredi 2 mars 2005StatutMembreDernière intervention 4 mars 2005
-
3 mars 2005 à 20:32
Slt
en fait j'utilise c++ builder et je dois faire un casse brique en cours seulement je n'arrive pas
a trouver comment faire pour supprimer la brique au contact de la balle sans faire
plein de tests pour chaque brique et si quelqu'un a une astuce, bah ça serait super sachant
que j'ai deja fait les trajectoires pour la balle... et il me reste plus que les briques...
merci d'avance
Vulpetrus
Messages postés70Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention21 décembre 2005 3 mars 2005 à 13:53
Normalement tu n'as pas à faire plein de test, pour un casse
brique de taille m X n, tu travaille avec un tableau d'entier
montab[m][n], tes briques sont representées dans ce tableau.
si montab[x][y] = 0 y a pas de brique à cette endroit
si montab[x][y] = 1 il y a une brique (=2 brique plus resistante =3 brique incassable etc ...)
montab[x][y] = -1 il y a une de tes balles
comme tu connais ta trajectoir de ta (tes) balle(s) (c'est toi
qui l'a dit) , tu peux donc determiner quelle va être la nouvelle
position de ta balle, tu fais un test sur cette nouvelle position, si
il ya une brique, tu la détruis (en mettant montab[x][y] = 0) et tu
change la trajectoire de ta balle. si il y en a pas tu déplace ta
balle à cette position. etc ...
HUSNET
Messages postés6Date d'inscriptionmercredi 2 mars 2005StatutMembreDernière intervention 4 mars 2005 3 mars 2005 à 18:19
Merci beaucoup pour ton conseil
Je pense que j'utiliserais des tableaux pour les briques:tab[i][j]=1 au debut
et ça dessineras la brique et -1 au cas ou il y a contact pour ne pas dessiner avec une condition et j'espere que ça marcheras.
si tu veux mon programme il se résume a peu pres a ça:
il est bidon, je sais (je suis en premiere année de dut et je viens juste de commencer vcl et ça c'est mon projet) mais je ferais des améliorations après avoir régler les problèmes les plus importants
//---------------------------------------------------------------------------
TForm1 *Form1;
int i, j;
float X=100, Y=100, A=5, B=5, C=550, D=680;
//il faut aussi que je déclare les briques tab[i][j] et je les initialise a 1
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Refresh();
Canvas->Brush->Color = clYellow;
Canvas->Pen->Color = clBlue;
Canvas->Ellipse(X,Y,X+10,Y+10);
X=X+A;Y=Y+B;
if(Y<0){B=-B;}//equation de trajectoire de la balle au contact du mur
if(X>1020){A=-A;}
if(X<0){A=-A;}
Canvas->Brush->Color = clGray;
Canvas->Pen->Color = clBlue;
Canvas->Rectangle(C,D,C+200,D+20);
if(X>C) //equation de trajectoire de la balle au contact de la raket
{if(X<C+200)
{if(Y+10>D)
if(Y<D)
{
{if(X<C+25){A=-2.8*2;B=-0.8*2;}
else
{if(X<C+50){A=-2.3*2;B=-1.7*2;}
else
{if(X<C+75){A=-1.7*2;B=-2.3*2;}
else
{if(X<C+100){A=-0.8*2;B=-2.8*2;}
else
{if(X<C+125){A=0.8*2;B=-2.8*2;}
else
{if(X<C+150){A=1.7*2;B=-2.3*2;}
else
{if(X<C+175){A=2.3*2;B=-1.7*2;}
else
{A=2.8*2;B=-0.8*2;}
}}}}}}}}}}
for(i=0;i<20;i++) //briques c'est la que je ferais ce que tu m'as dis
{
for(j=1;j<3;j++)
{
Canvas->Brush->Color = clRed;
Canvas->Pen->Color = clBlue;
Canvas->Rectangle(i*50,j*20,(i+1)*50,(j+1)*20);
}
}
}
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if(X<925) //mouvement de la raket
{if(X>100)
{
C=X-100;
}
}
HUSNET
Messages postés6Date d'inscriptionmercredi 2 mars 2005StatutMembreDernière intervention 4 mars 2005 3 mars 2005 à 20:32
en fait moi aussi j'utilise visual (c++ builder 5) je me suis trompé
et au fait merci parceque ça commence à marcher sauf que les images n'arrete pas de clignoter, je pense que c'est à cause du timer mais j'arrive pas à résoudre le pb
En tout cas merci pour ton conseil