fin;
fin;
PROcédureTBounceThread. Exécuter;
commencer
Bien quenonTerminéfaire
commencer
Synchroniser (MoveShape);
fin;
fin;
constructeurTBounceThread. Créer (Suspendu : Booléen ; Forme : TShape ; XSpeed, YSpeed : Integer) ;
commencer
héritéCreate (Suspendu);
FForme : ΚForme ;
FXSpeed : ΚXSpeed ; {vitesse de l'axe X}
FYSpeed : ΚYSpeed ; {Vitesse de la direction de l'axe Y}
FreeOnTerminate :ΚTrue ;
fin;
fin.
Il s'agit d'un jeu de bumper ball multithread. Vous pouvez avoir plusieurs balles différentes, qui appartiennent à différents threads et entrent en collision indépendamment sur l'écran. Évidemment, puisque l'affichage de plusieurs balles en cours d'exécution fera fonctionner les ressources VCL en même temps, pour des raisons de sécurité, nous avons ajouté Synchronize (MoveShape) dans la partie exécution du processus Execute pour appeler le processus MoveShape là où les ressources VCL en ont besoin. à utiliser, tels que les formulaires et les bitmaps, doivent être ajoutés à l'appel Synchronize.
Lors de l'exécution, nous pouvons créer un nouveau programme, puis ajouter l'unité BncThrd ci-dessus dans la section USES, puis ajouter deux contrôles Shape Shape1 et Shape2 à sa forme FORM1 peut être un rectangle et Shape2 est un cercle. Ajoutez le code suivant pour faire bouger le rectangle et le cercle.
procédureTForm1. Button1Click (Expéditeur : TObject );
commencer
TBounceThread. Créer (Faux, Forme1,1,2);
TBounceThread. Créer (Faux, Forme2,2,3);
fin;
Blog de l'auteur : http://blog.csdn.net/zou5655/