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 มิลลิวินาที ในแต่ละประโยค ตอนนี้ขอคอมไพล์และตีกลับอีกครั้งระยะ และตอนนี้เราจะเห็นที่เหมาะสมมากขึ้น การดำเนินการที่เราสามารถมองเห็น วงกลมใหญ่ในอย่างแท้จริง ขอบด้านซ้ายและขวา