1 00:00:00,000 --> 00:00:00,260 2 00:00:00,260 --> 00:00:03,010 >> DAVID ลัน: ลองเขียนโปรแกรม ที่เกี่ยวข้องกับหน้าต่างและวงกลมที่มี 3 00:00:03,010 --> 00:00:05,820 วงกลมใหญ่กลับมา ออกซ้ายและขวา 4 00:00:05,820 --> 00:00:07,120 ขอบของหน้าต่างที่ 5 00:00:07,120 --> 00:00:09,960 ต้องการทำเช่นนั้นขอใช้สแตนฟอ ห้องสมุดแบบพกพาและให้เป็นครั้งแรก 6 00:00:09,960 --> 00:00:14,830 รวมถึง gevents.h เพื่อให้เราสามารถ ฟังสำหรับการเคลื่อนไหวของเมาส์ 7 00:00:14,830 --> 00:00:20,970 ลองมาแล้วรวม gobjects.h เพื่อให้ เราสามารถประกาศสิ่งที่ต้องการหรือวงรี 8 00:00:20,970 --> 00:00:22,110 วงการจริงๆ 9 00:00:22,110 --> 00:00:26,090 แล้วให้รวม gwindow.h เพื่อให้ เรามีหน้าต่างแบบกราฟิกสำหรับ 10 00:00:26,090 --> 00:00:27,020 ทุกอย่าง 11 00:00:27,020 --> 00:00:30,390 >> ขอประกาศหลักในทางปกติ 12 00:00:30,390 --> 00:00:35,095 และตอนนี้ขอประกาศและยกตัวอย่าง หรือสร้างหน้าต่างที่ GWindow - 13 00:00:35,095 --> 00:00:37,090 และเราจะเรียกหน้าต่างตัวแปร - 14 00:00:37,090 --> 00:00:39,790 ได้รับ newGWindow 15 00:00:39,790 --> 00:00:44,450 และเราพลจะทำให้มัน 320 พิกเซลโดย 240 พิกเซล 16 00:00:44,450 --> 00:00:46,190 >> ขอยกตัวอย่างต่อไปเป็นวงกลม 17 00:00:46,190 --> 00:00:48,740 แต่การที่จะยกตัวอย่างวงกลมนี้ เราต้องทำงานอีกเล็กน้อย 18 00:00:48,740 --> 00:00:51,340 โดยเฉพาะอย่างยิ่งขอให้กรอกข้อมูลลงในวงกลมนี้ เพื่อให้สิ่งที่ทั้ง 19 00:00:51,340 --> 00:00:53,910 สีดำและไม่เพียง ร่างดังกล่าว 20 00:00:53,910 --> 00:00:54,850 Goval - 21 00:00:54,850 --> 00:00:56,450 เราจะเรียกว่าวงกลม - 22 00:00:56,450 --> 00:00:58,310 ได้รับ newGOval 23 00:00:58,310 --> 00:01:04,810 เราจะใส่ไข่นี้ที่ 0, 110, และเราจะ ทำให้ไข่ 20 พิกเซลกว้าง 24 00:01:04,810 --> 00:01:09,070 20 พิกเซลสูง - ในคำอื่น ๆ เส้นผ่าศูนย์กลางของ 20 หรือรัศมีของ 10 25 00:01:09,070 --> 00:01:14,120 >> ตอนนี้ขอตั้งค่าสีของวงกลมที่ จะอ้างไม่ได้นำมาอ้าง "สีดำ". เถอะ 26 00:01:14,120 --> 00:01:19,030 ชุดนี้มันจะเต็มไป โดยระบุจริง 27 00:01:19,030 --> 00:01:24,100 และตอนสุดท้ายให้เพิ่มวงกลมเพื่อ หน้าต่างดังนี้โดย 28 00:01:24,100 --> 00:01:26,390 หลังถูกเพิ่มเข้าไปในอดีต 29 00:01:26,390 --> 00:01:27,910 >> ตอนนี้ขอประกาศคู่ 30 00:01:27,910 --> 00:01:29,200 เราจะเรียกว่าความเร็ว 31 00:01:29,200 --> 00:01:32,380 และค่อนข้างพลสมมติว่า ความเร็วของวงกลมนี้จะเป็น 32 00:01:32,380 --> 00:01:36,290 2.0 ในคำอื่น ๆ , 2 พิกเซล หน่วยของเวลาทุก 33 00:01:36,290 --> 00:01:39,380 และตอนนี้ขอจงใจ ก่อให้เกิดห่วงอนันต์ 34 00:01:39,380 --> 00:01:42,060 >> ดังนั้นวิธีการที่จะทำให้วงกลมนี้ ย้อนกลับมา? 35 00:01:42,060 --> 00:01:45,190 ดีสมมติว่าภายในวงนี้ว่า หน่วยของทุกครั้งที่เรา 36 00:01:45,190 --> 00:01:48,890 จะย้ายวงกลมเพียงเล็กน้อย บิตขึ้นอยู่กับความเร็วของ 2 พิกเซล 37 00:01:48,890 --> 00:01:50,070 ต่อหน่วยของเวลา 38 00:01:50,070 --> 00:01:52,900 แต่อย่างต่อเนื่องที่เรากำลังจะต้อง ตรวจสอบว่าวงกลมสัมผัส 39 00:01:52,900 --> 00:01:56,480 ขอบด้านขวาของหน้าจอหรือซ้าย ขอบของหน้าจอเพราะถ้าเป็นเช่นนั้นเรา 40 00:01:56,480 --> 00:01:58,530 จำเป็นต้องใช้ในการตีกลับจึงจะพูด 41 00:01:58,530 --> 00:02:00,380 >> วิธีการใช้ ความคิดของใหญ่? 42 00:02:00,380 --> 00:02:04,400 ดีถ้าเราจะไปที่ 2 พิกเซล ที่เหมาะสมต่อหน่วยของเวลาที่จะกระเด้งออกมา 43 00:02:04,400 --> 00:02:08,259 ขอบด้านขวาเราก็สามารถย้อนกลับ ที่จะลบ 2 พิกเซลต่อหน่วย 44 00:02:08,259 --> 00:02:10,400 ของเวลาจึงกวน ความเร็ว 45 00:02:10,400 --> 00:02:13,160 ดังนั้นในความเป็นจริงค่อนข้างใหญ่ ซื่อตรง 46 00:02:13,160 --> 00:02:19,260 >> Let 's แรกย้ายวงกลมหลายนี้ พิกเซลพร้อมแกน x โดยนี้ 47 00:02:19,260 --> 00:02:21,040 พิกเซลจำนวนมากตามแนวแกน 48 00:02:21,040 --> 00:02:23,600 ในคำอื่น ๆ ที่เราไม่ได้ต้องการให้ ย้ายไปตามแกน y เลย 49 00:02:23,600 --> 00:02:25,950 เราเพียง แต่ต้องการที่จะกลับมา และทิ้งไว้และขวา 50 00:02:25,950 --> 00:02:31,910 >> และตอนนี้ขอตรวจสอบภายในวงนี้ถ้า พิกัด x ของวงกลมบวก 51 00:02:31,910 --> 00:02:36,515 ความกว้างของวงกลมที่มีขนาดใหญ่ มากกว่าหรือเท่ากับ 52 00:02:36,515 --> 00:02:38,520 ความกว้างของหน้าต่าง - 53 00:02:38,520 --> 00:02:42,180 ในคำอื่น ๆ หากตำแหน่งของวงกลม บวกความกว้างของวงกลม 54 00:02:42,180 --> 00:02:44,840 ตัวเองเป็นตอนนี้ผ่านมาขอบ ของหน้าต่างที่เราต้องการ 55 00:02:44,840 --> 00:02:46,090 ดีกว่ากลับความเร็วของเรา - 56 00:02:46,090 --> 00:02:49,080 57 00:02:49,080 --> 00:02:53,680 ความเร็วรับความเร็วเชิงลบจึง พลิกบวก 58 00:02:53,680 --> 00:02:56,090 เชิงลบหรือเชิงลบเป็นบวก 59 00:02:56,090 --> 00:02:59,740 แต่ถ้าวงกลมจะย้ายจาก ขวาไปซ้ายและมันจึงนิยม 60 00:02:59,740 --> 00:03:00,670 ขอบซ้าย 61 00:03:00,670 --> 00:03:06,490 ในคำอื่น ๆ ถ้าพิกัด x ของ วงกลมขณะนี้น้อยกว่าหรือเท่ากับ 62 00:03:06,490 --> 00:03:12,530 0 ให้ไปข้างหน้าและอีกครั้ง กลับความเร็วของเรา 63 00:03:12,530 --> 00:03:14,980 >> ดังนั้นทำไมฉันไม่ได้เพิ่มเข้ามาใน ความกว้างของวงนี้ 64 00:03:14,980 --> 00:03:16,410 เวลาที่ผมได้มาก่อนหรือไม่ 65 00:03:16,410 --> 00:03:19,050 ดีทราบว่าพิกัด ของวัตถุที่กำหนดไว้ 66 00:03:19,050 --> 00:03:22,200 โดยมุมซ้ายมือด้านบน โดยไม่กลาง 67 00:03:22,200 --> 00:03:25,810 และดังนั้นเมื่อวงกลมจะย้ายจาก จากซ้ายไปขวาที่เราจำเป็นต้องตรวจสอบ 68 00:03:25,810 --> 00:03:28,910 ไม่ว่าจะเป็นขอบด้านขวาของ วงกลมได้ผ่านการ 69 00:03:28,910 --> 00:03:30,200 ขอบด้านขวาของหน้าต่าง 70 00:03:30,200 --> 00:03:34,100 เพื่อที่จะคิดออกว่ามันคืออะไรเรามี ที่จะได้รับพิกัด x ของวงกลม 71 00:03:34,100 --> 00:03:38,080 บวกความกว้างของวงกลมที่จะย้าย ตัวเองจากด้านบนซ้ายมือ 72 00:03:38,080 --> 00:03:40,650 มุมได้อย่างมีประสิทธิภาพเพื่อ มุมขวาด้านบน 73 00:03:40,650 --> 00:03:43,700 เมื่อวงกลมที่มีการเคลื่อนไหวจากขวาไป ด้านซ้ายขณะที่เราไม่จำเป็นต้อง 74 00:03:43,700 --> 00:03:47,550 รำคาญกับการเพิ่มดังกล่าวเพราะ ที่มุมซ้ายด้านบนของวงกลมเป็น 75 00:03:47,550 --> 00:03:50,700 แล้วค่าที่เราจะ ได้รับจากการได้รับ x 76 00:03:50,700 --> 00:03:54,140 >> ตอนนี้ขอย้ายลูก 77 00:03:54,140 --> 00:04:00,900 ตอนนี้ขอบันทึกรวบรวมและใช้นี้ โปรแกรมให้ตีกลับ. / ตีกลับ 78 00:04:00,900 --> 00:04:02,230 และมีเรามีโปรแกรม 79 00:04:02,230 --> 00:04:05,760 >> แต่วงกลมที่มีการเคลื่อนไหวเพื่อสาปอย่างรวดเร็ว มันเป็นไปไม่ได้เกือบที่จะดูว่ามีอะไร 80 00:04:05,760 --> 00:04:07,060 จริงที่เกิดขึ้น 81 00:04:07,060 --> 00:04:10,620 จึงขอโปรแกรมค่อนข้างบังคับโดย คลิก X ที่ด้านบนขวามือ 82 00:04:10,620 --> 00:04:11,720 มุมที่นี่ 83 00:04:11,720 --> 00:04:15,300 ตอนนี้ให้กลับไปเป็นรหัสแหล่งที่มา และช้าลงสิ่งเล็กน้อย 84 00:04:15,300 --> 00:04:19,240 >> ในคำอื่น ๆ ภายในไม่มีที่สิ้นสุดนี้ ห่วงมากกว่าเพียงและการเคลื่อนย้ายและ 85 00:04:19,240 --> 00:04:22,850 ย้ายและอีกครั้ง nauseum โฆษณาให้อิทธิพล เพียงไม่กี่มิลลิวินาที 86 00:04:22,850 --> 00:04:24,910 ก่อนที่จะดำเนินการย้ายอีกครั้ง 87 00:04:24,910 --> 00:04:28,480 โดยเฉพาะอย่างยิ่งให้ไปที่ด้านล่าง ของวง จำกัด ที่นี่และก็ 88 00:04:28,480 --> 00:04:32,820 หยุดพูด 10 มิลลิวินาที ในแต่ละประโยค 89 00:04:32,820 --> 00:04:36,690 ตอนนี้ขอคอมไพล์และตีกลับอีกครั้งระยะ 90 00:04:36,690 --> 00:04:40,190 และตอนนี้เราจะเห็นที่เหมาะสมมากขึ้น การดำเนินการที่เราสามารถมองเห็น 91 00:04:40,190 --> 00:04:43,310 วงกลมใหญ่ในอย่างแท้จริง ขอบด้านซ้ายและขวา 92 00:04:43,310 --> 00:04:45,395