จบ;
จบ;
ขั้นตอน TBounceThread. ดำเนินการ;
เริ่ม
ในขณะที่ไม่ยุติทำ
เริ่ม
ซิงโครไนซ์ (MoveShape);
จบ;
จบ;
ตัวสร้างTBounceThread. สร้าง (ถูกระงับ: บูลีน รูปร่าง: TShape; XSpeed, YSpeed: จำนวนเต็ม);
เริ่ม
สืบทอดสร้าง (ถูกระงับ);
FShape: Κรูปร่าง;
FXSpeed: ΚXSpeed; {ความเร็วแกน X}
FYSpeed: ΚYSpeed; {ความเร็วของทิศทางแกน Y}
FreeOnTerminate:Κจริง;
จบ;
จบ.
นี่คือเกมบัมเปอร์บอลแบบมัลติเธรด คุณสามารถมีลูกบอลที่แตกต่างกันหลายลูกซึ่งอยู่ในเธรดที่แตกต่างกันและชนกันบนหน้าจออย่างอิสระ แน่นอนว่า เนื่องจากการแสดงลูกบอลหลายลูกที่ทำงานอยู่จะดำเนินการทรัพยากร VCL ในเวลาเดียวกัน เพื่อความปลอดภัย เราจึงเพิ่ม Synchronize (MoveShape) ในส่วนการดำเนินการของกระบวนการ Execute เพื่อเรียกใช้กระบวนการ MoveShape ที่จริงแล้ว ไม่ว่าทรัพยากร VCL จะอยู่ที่ใดก็ตาม ที่จะดำเนินการ เช่น แบบฟอร์มและบิตแมป ควรเพิ่มในการเรียกซิงโครไนซ์
เมื่อดำเนินการ เราสามารถสร้างโปรแกรมใหม่ จากนั้นเพิ่มหน่วย BncThrd ข้างต้นในส่วน USES จากนั้นเพิ่มตัวควบคุมรูปร่าง Shape1 และ Shape2 สองตัวให้กับแบบฟอร์ม FORM1 สามารถเป็นรูปสี่เหลี่ยมผืนผ้าได้ และ Shape2 จะเป็นวงกลม เพิ่มโค้ดต่อไปนี้เพื่อทำให้สี่เหลี่ยมและวงกลมเคลื่อนที่
ขั้นตอนTForm1. Button1Click(ผู้ส่ง: TObject);
เริ่ม
TBounceThread. สร้าง(เท็จ,รูปร่าง1,1,2);
TBounceThread. สร้าง(เท็จ,รูปร่าง2,2,3);
จบ;
บล็อกของผู้เขียน: http://blog.csdn.net/zou5655/