Ecrire une fonction dans C++ Builder
Bonjour tout le monde,
Je suis entrain d'écrire un petit jeu avec Builder, et j'ai l'impression que je me répète dans mon code, je ne sais comment écrire une fonction et les appeler juste dans un programme principal
merci de votre aide
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| void __fastcall TForm1guerrier::FormKeyPress(TObject *Sender, char &Key)
{
const int segmentLongueur = Image1graphe->Height/10;
static float Angle = -M_PI/2;
float Cinq = 5*M_PI/180; // conversion en radian
if (((Key == 'l')||(Key == 'L'))&(-Angle *180/M_PI > 5 ))
{
Angle = Angle + Cinq; //incrémenté par pas de 5
Image1graphe->Canvas->Pen->Color = clWhite;
Image1graphe->Canvas->MoveTo(segmentDebutX, segmentDebutY);
Image1graphe->Canvas->LineTo(segmentFinX, segmentFinY);
segmentFinX = segmentDebutX + segmentLongueur * cos(Angle);
segmentFinY = segmentDebutY + segmentLongueur * sin(Angle);
Image1graphe->Canvas->Pen->Color = clRed;
Image1graphe->Canvas->Pen->Width = 5;
Image1graphe->Canvas->MoveTo(segmentDebutX, segmentDebutY);
Image1graphe->Canvas->LineTo(segmentFinX, segmentFinY);
}
if (((Key == 'K')||(Key == 'k'))&(-Angle*180/M_PI < 175 ))
{
Angle = Angle - Cinq; //par pas de cinq
Image1graphe->Canvas->Pen->Color = clWhite;
Image1graphe->Canvas->MoveTo(segmentDebutX, segmentDebutY);
Image1graphe->Canvas->LineTo(segmentFinX, segmentFinY);
segmentFinX = segmentDebutX + segmentLongueur * cos(Angle);
segmentFinY = segmentDebutY + segmentLongueur * sin(Angle);
Image1graphe->Canvas->Pen->Color = clRed;
Image1graphe->Canvas->Pen->Width = 5;
Image1graphe->Canvas->MoveTo(segmentDebutX, segmentDebutY);
Image1graphe->Canvas->LineTo(segmentFinX, segmentFinY);
}
Panel1angle->Caption = FloatToStrF(-Angle*180/M_PI,ffFixed,3,2);
}
//--------------------------------------------------------------------------- |