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 : Sélectionner tout - Visualiser dans une fenêtre à part
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);
}
//---------------------------------------------------------------------------