Ende;
Ende;
PROcedureTBounceThread. Ausführen;
beginnen
WhilenotTerminateddo
beginnen
Synchronisieren(MoveShape);
Ende;
Ende;
KonstruktorTBounceThread. Create(Suspended: Boolean; Shape: TShape; XSpeed, YSpeed: Integer);
beginnen
inheritedCreate(Suspended);
FShape: ΚShape;
FXSpeed: ΚXSpeed; {X-Achsengeschwindigkeit}
FYSpeed: ΚYSpeed; {Geschwindigkeit der Y-Achsenrichtung}
FreeOnTerminate:ΚTrue;
Ende;
Ende.
Dies ist ein Multi-Thread-Bumper-Ball-Spiel. Sie können mehrere verschiedene Bälle haben, die zu verschiedenen Threads gehören und unabhängig voneinander auf dem Bildschirm kollidieren. Da bei der Anzeige mehrerer laufender Bälle gleichzeitig VCL-Ressourcen verwendet werden, haben wir aus Sicherheitsgründen Synchronize (MoveShape) im Ausführungsteil des Execute-Prozesses hinzugefügt, um den MoveShape-Prozess tatsächlich überall dort aufzurufen, wo VCL-Ressourcen benötigt werden Zu bedienende Dateien wie Formulare und Bitmaps sollten dem Synchronize-Aufruf hinzugefügt werden.
Bei der Ausführung können wir ein neues Programm erstellen, dann die obige BncThrd-Einheit im Abschnitt USES hinzufügen und dann zwei Shape-Steuerelemente Shape1 und Shape2 zu seiner Form hinzufügen. Shape1 kann ein Rechteck und Shape2 ein Kreis sein. Fügen Sie den folgenden Code hinzu, um das Rechteck und den Kreis zu verschieben.
procedureTForm1. Button1Click(Sender: TObject);
beginnen
TBounceThread. Create(False,Shape1,1,2);
TBounceThread. Create(False,Shape2,2,3);
Ende;
Blog des Autors: http://blog.csdn.net/zou5655/