>> DAVID ลัน: ลองเขียนโปรแกรม ที่เกี่ยวข้องกับหน้าต่างและวงกลมที่มี
วงกลมใหญ่กลับมา ออกซ้ายและขวา
ขอบของหน้าต่างที่
ต้องการทำเช่นนั้นขอใช้สแตนฟอ ห้องสมุดแบบพกพาและให้เป็นครั้งแรก
รวมถึง gevents.h เพื่อให้เราสามารถ ฟังสำหรับการเคลื่อนไหวของเมาส์
ลองมาแล้วรวม gobjects.h เพื่อให้ เราสามารถประกาศสิ่งที่ต้องการหรือวงรี
วงการจริงๆ
แล้วให้รวม gwindow.h เพื่อให้ เรามีหน้าต่างแบบกราฟิกสำหรับ
ทุกอย่าง
>> ขอประกาศหลักในทางปกติ
และตอนนี้ขอประกาศและยกตัวอย่าง หรือสร้างหน้าต่างที่ GWindow -
และเราจะเรียกหน้าต่างตัวแปร -
ได้รับ newGWindow
และเราพลจะทำให้มัน 320 พิกเซลโดย 240 พิกเซล
>> ขอยกตัวอย่างต่อไปเป็นวงกลม
แต่การที่จะยกตัวอย่างวงกลมนี้ เราต้องทำงานอีกเล็กน้อย
โดยเฉพาะอย่างยิ่งขอให้กรอกข้อมูลลงในวงกลมนี้ เพื่อให้สิ่งที่ทั้ง
สีดำและไม่เพียง ร่างดังกล่าว
Goval -
เราจะเรียกว่าวงกลม -
ได้รับ newGOval
เราจะใส่ไข่นี้ที่ 0, 110, และเราจะ ทำให้ไข่ 20 พิกเซลกว้าง
20 พิกเซลสูง - ในคำอื่น ๆ เส้นผ่าศูนย์กลางของ 20 หรือรัศมีของ 10
>> ตอนนี้ขอตั้งค่าสีของวงกลมที่ จะอ้างไม่ได้นำมาอ้าง "สีดำ". เถอะ
ชุดนี้มันจะเต็มไป โดยระบุจริง
และตอนสุดท้ายให้เพิ่มวงกลมเพื่อ หน้าต่างดังนี้โดย
หลังถูกเพิ่มเข้าไปในอดีต
>> ตอนนี้ขอประกาศคู่
เราจะเรียกว่าความเร็ว
และค่อนข้างพลสมมติว่า ความเร็วของวงกลมนี้จะเป็น
2.0 ในคำอื่น ๆ , 2 พิกเซล หน่วยของเวลาทุก
และตอนนี้ขอจงใจ ก่อให้เกิดห่วงอนันต์
>> ดังนั้นวิธีการที่จะทำให้วงกลมนี้ ย้อนกลับมา?
ดีสมมติว่าภายในวงนี้ว่า หน่วยของทุกครั้งที่เรา
จะย้ายวงกลมเพียงเล็กน้อย บิตขึ้นอยู่กับความเร็วของ 2 พิกเซล
ต่อหน่วยของเวลา
แต่อย่างต่อเนื่องที่เรากำลังจะต้อง ตรวจสอบว่าวงกลมสัมผัส
ขอบด้านขวาของหน้าจอหรือซ้าย ขอบของหน้าจอเพราะถ้าเป็นเช่นนั้นเรา
จำเป็นต้องใช้ในการตีกลับจึงจะพูด
>> วิธีการใช้ ความคิดของใหญ่?
ดีถ้าเราจะไปที่ 2 พิกเซล ที่เหมาะสมต่อหน่วยของเวลาที่จะกระเด้งออกมา
ขอบด้านขวาเราก็สามารถย้อนกลับ ที่จะลบ 2 พิกเซลต่อหน่วย
ของเวลาจึงกวน ความเร็ว
ดังนั้นในความเป็นจริงค่อนข้างใหญ่ ซื่อตรง
>> Let 's แรกย้ายวงกลมหลายนี้ พิกเซลพร้อมแกน x โดยนี้
พิกเซลจำนวนมากตามแนวแกน
ในคำอื่น ๆ ที่เราไม่ได้ต้องการให้ ย้ายไปตามแกน y เลย
เราเพียง แต่ต้องการที่จะกลับมา และทิ้งไว้และขวา
>> และตอนนี้ขอตรวจสอบภายในวงนี้ถ้า พิกัด x ของวงกลมบวก
ความกว้างของวงกลมที่มีขนาดใหญ่ มากกว่าหรือเท่ากับ
ความกว้างของหน้าต่าง -
ในคำอื่น ๆ หากตำแหน่งของวงกลม บวกความกว้างของวงกลม
ตัวเองเป็นตอนนี้ผ่านมาขอบ ของหน้าต่างที่เราต้องการ
ดีกว่ากลับความเร็วของเรา -
ความเร็วรับความเร็วเชิงลบจึง พลิกบวก
เชิงลบหรือเชิงลบเป็นบวก
แต่ถ้าวงกลมจะย้ายจาก ขวาไปซ้ายและมันจึงนิยม
ขอบซ้าย
ในคำอื่น ๆ ถ้าพิกัด x ของ วงกลมขณะนี้น้อยกว่าหรือเท่ากับ
0 ให้ไปข้างหน้าและอีกครั้ง กลับความเร็วของเรา
>> ดังนั้นทำไมฉันไม่ได้เพิ่มเข้ามาใน ความกว้างของวงนี้
เวลาที่ผมได้มาก่อนหรือไม่
ดีทราบว่าพิกัด ของวัตถุที่กำหนดไว้
โดยมุมซ้ายมือด้านบน โดยไม่กลาง
และดังนั้นเมื่อวงกลมจะย้ายจาก จากซ้ายไปขวาที่เราจำเป็นต้องตรวจสอบ
ไม่ว่าจะเป็นขอบด้านขวาของ วงกลมได้ผ่านการ
ขอบด้านขวาของหน้าต่าง
เพื่อที่จะคิดออกว่ามันคืออะไรเรามี ที่จะได้รับพิกัด x ของวงกลม
บวกความกว้างของวงกลมที่จะย้าย ตัวเองจากด้านบนซ้ายมือ
มุมได้อย่างมีประสิทธิภาพเพื่อ มุมขวาด้านบน
เมื่อวงกลมที่มีการเคลื่อนไหวจากขวาไป ด้านซ้ายขณะที่เราไม่จำเป็นต้อง
รำคาญกับการเพิ่มดังกล่าวเพราะ ที่มุมซ้ายด้านบนของวงกลมเป็น
แล้วค่าที่เราจะ ได้รับจากการได้รับ x
>> ตอนนี้ขอย้ายลูก
ตอนนี้ขอบันทึกรวบรวมและใช้นี้ โปรแกรมให้ตีกลับ. / ตีกลับ
และมีเรามีโปรแกรม
>> แต่วงกลมที่มีการเคลื่อนไหวเพื่อสาปอย่างรวดเร็ว มันเป็นไปไม่ได้เกือบที่จะดูว่ามีอะไร
จริงที่เกิดขึ้น
จึงขอโปรแกรมค่อนข้างบังคับโดย คลิก X ที่ด้านบนขวามือ
มุมที่นี่
ตอนนี้ให้กลับไปเป็นรหัสแหล่งที่มา และช้าลงสิ่งเล็กน้อย
>> ในคำอื่น ๆ ภายในไม่มีที่สิ้นสุดนี้ ห่วงมากกว่าเพียงและการเคลื่อนย้ายและ
ย้ายและอีกครั้ง nauseum โฆษณาให้อิทธิพล เพียงไม่กี่มิลลิวินาที
ก่อนที่จะดำเนินการย้ายอีกครั้ง
โดยเฉพาะอย่างยิ่งให้ไปที่ด้านล่าง ของวง จำกัด ที่นี่และก็
หยุดพูด 10 มิลลิวินาที ในแต่ละประโยค
ตอนนี้ขอคอมไพล์และตีกลับอีกครั้งระยะ
และตอนนี้เราจะเห็นที่เหมาะสมมากขึ้น การดำเนินการที่เราสามารถมองเห็น
วงกลมใหญ่ในอย่างแท้จริง ขอบด้านซ้ายและขวา