1 00:00:00,000 --> 00:00:00,260 2 00:00:00,260 --> 00:00:03,010 >> DAVID Malan: Pieņemsim uzrakstīt programmu iesaistot logu un apli ar 3 00:00:03,010 --> 00:00:05,820 aplis veselīgs un atpakaļ off pa kreisi un pa labi 4 00:00:05,820 --> 00:00:07,120 malas šo logu. 5 00:00:07,120 --> 00:00:09,960 Lai to izdarītu, pieņemsim izmantot Stenfordas Portable bibliotēka, un pieņemsim vispirms 6 00:00:09,960 --> 00:00:14,830 ietver gevents.h lai mēs varētu klausīties peles kustībām. 7 00:00:14,830 --> 00:00:20,970 Pieņemsim tad ir iekļauts gobjects.h lai mēs varam paziņot, lietas, piemēram, ovāli vai 8 00:00:20,970 --> 00:00:22,110 aprindās, tiešām. 9 00:00:22,110 --> 00:00:26,090 Un tad pieņemsim ietver gwindow.h lai mums ir grafisko logu 10 00:00:26,090 --> 00:00:27,020 viss. 11 00:00:27,020 --> 00:00:30,390 >> Pieņemsim deklarēt galvenais parastajā veidā. 12 00:00:30,390 --> 00:00:35,095 Un pieņemsim tagad deklarē un instantiate vai izveidot šo logu, GWindow - 13 00:00:35,095 --> 00:00:37,090 un mēs aicinām mainīgo logu - 14 00:00:37,090 --> 00:00:39,790 izpaužas newGWindow. 15 00:00:39,790 --> 00:00:44,450 Un mēs patvaļīgi padara 320 pikseļi ar 240 pikseļi. 16 00:00:44,450 --> 00:00:46,190 >> Pieņemsim nākamā instantiate apli. 17 00:00:46,190 --> 00:00:48,740 Bet instantiate šo apli, mums ir jādara mazliet vairāk darba. 18 00:00:48,740 --> 00:00:51,340 Jo īpaši, pieņemsim aizpildiet šajā lokā tā, ka visa lieta ir 19 00:00:51,340 --> 00:00:53,910 melnā un ne tikai izklāstīt to. 20 00:00:53,910 --> 00:00:54,850 GOval - 21 00:00:54,850 --> 00:00:56,450 mēs to saucam aplis - 22 00:00:56,450 --> 00:00:58,310 izpaužas newGOval. 23 00:00:58,310 --> 00:01:04,810 Mēs nodot šo ovāla 0, 110, un mēs padara ovālo 20 pikseļus plats 24 00:01:04,810 --> 00:01:09,070 20 pikseļus augsts - citiem vārdiem sakot, diametrs 20 vai rādiuss 10. 25 00:01:09,070 --> 00:01:14,120 >> Let 's tagad ir noteikts krāsu, ka apļa būtu citēt, likt pēdiņas beigās, "melnā krāsā." Pieņemsim 26 00:01:14,120 --> 00:01:19,030 tagad noteikti ir jāaizpilda norādot taisnība. 27 00:01:19,030 --> 00:01:24,100 Un tagad visbeidzot, pieņemsim pievienot apli logs šādi, kuru 28 00:01:24,100 --> 00:01:26,390 pēdējais ir pievienots pirmajam. 29 00:01:26,390 --> 00:01:27,910 >> Pieņemsim tagad pasludināt dubultā. 30 00:01:27,910 --> 00:01:29,200 Mēs to saucam par ātrumu. 31 00:01:29,200 --> 00:01:32,380 Un nedaudz patvaļīgi, teiksim ātrums šajā lokā būs 32 00:01:32,380 --> 00:01:36,290 2.0, citiem vārdiem sakot, 2 pikseļi par katru laika vienībā. 33 00:01:36,290 --> 00:01:39,380 Un tagad pieņemsim apzināti izraisīt bezgalīgu cilpu. 34 00:01:39,380 --> 00:01:42,060 >> Tātad, kā padarīt šo apli lielība un atpakaļ? 35 00:01:42,060 --> 00:01:45,190 Nu pieņemsim šajā cilpa, kas par katru laika vienībā, mēs 36 00:01:45,190 --> 00:01:48,890 būs tikai nedaudz pārvietot apli bit, pamatojoties uz tās ātrumu 2 pikseļiem 37 00:01:48,890 --> 00:01:50,070 laika vienībā. 38 00:01:50,070 --> 00:01:52,900 Bet nepārtraukti, mēs esam nāksies pārbaudiet, vai aplis pieskaras 39 00:01:52,900 --> 00:01:56,480 labi ekrāna malu vai pa kreisi malu ekrāna, jo, ja tas tā ir, mēs 40 00:01:56,480 --> 00:01:58,530 vajag, lai lielība, lai runāt. 41 00:01:58,530 --> 00:02:00,380 >> Kā ieviest jēdziens veselīgs? 42 00:02:00,380 --> 00:02:04,400 Labi, ja mēs ejam uz 2 pikseļiem līdz labais laika vienībā, lai lielība off 43 00:02:04,400 --> 00:02:08,259 labās malas, mēs varam vienkārši mainīt tas būs negatīvs 2 pikseļi uz vienu vienību 44 00:02:08,259 --> 00:02:10,400 laiku, tādējādi liedzot ātrumu. 45 00:02:10,400 --> 00:02:13,160 Tātad faktiski, veselīgs ir salīdzinoši vienkārši. 46 00:02:13,160 --> 00:02:19,260 >> Pieņemsim vispirms pārvietotu apli ar to daudzi pikseļi pa x-ass, ar šo 47 00:02:19,260 --> 00:02:21,040 daudz pikseļu pa y asi. 48 00:02:21,040 --> 00:02:23,600 Citiem vārdiem sakot, mēs negribam, lai pārvietoties pa y asi vispār. 49 00:02:23,600 --> 00:02:25,950 Mēs tikai gribam, lai piepeši atpakaļ un tālāk pa kreisi un pa labi. 50 00:02:25,950 --> 00:02:31,910 >> Un pieņemsim tagad pārbauda šajā cilpas, ja x-koordinātu apļa plus 51 00:02:31,910 --> 00:02:36,515 platums apļa ir lielāks par vai vienāds ar 52 00:02:36,515 --> 00:02:38,520 platums loga - 53 00:02:38,520 --> 00:02:42,180 citiem vārdiem sakot, ja aplis atrašanās vieta plus platums apļa 54 00:02:42,180 --> 00:02:44,840 pati tagad ir pagātne malas loga, mēs gribētu 55 00:02:44,840 --> 00:02:46,090 labāk mainīt savu ātrumu - 56 00:02:46,090 --> 00:02:49,080 57 00:02:49,080 --> 00:02:53,680 ātrums izpaužas negatīvu ātrumu, tādējādi flipping pozitīvs 58 00:02:53,680 --> 00:02:56,090 negatīva vai negatīva pozitīvu. 59 00:02:56,090 --> 00:02:59,740 Bet ko tad, ja aplis virzās no no labās uz kreiso, un tāpēc tas hits 60 00:02:59,740 --> 00:03:00,670 kreisajā malā? 61 00:03:00,670 --> 00:03:06,490 Citiem vārdiem, ja x-koordināta Tagad aplis ir mazāks par vai vienāds 62 00:03:06,490 --> 00:03:12,530 līdz 0, iesim uz priekšu un atkal invertcukuru mūsu ātrumu. 63 00:03:12,530 --> 00:03:14,980 >> Tātad, kāpēc man nav pievienoti platums apļa šo 64 00:03:14,980 --> 00:03:16,410 laiks, kā es to darīja agrāk? 65 00:03:16,410 --> 00:03:19,050 Nu, paturiet prātā, ka koordinātes objekta ir definēti 66 00:03:19,050 --> 00:03:22,200 tās augšējā kreisajā stūrī, nevis tās vidū. 67 00:03:22,200 --> 00:03:25,810 Un tad, kad aplis virzās no kreisās uz labo pusi, mums ir nepieciešams, lai pārbaudītu 68 00:03:25,810 --> 00:03:28,910 vai labā mala aplis ir pagājis 69 00:03:28,910 --> 00:03:30,200 labo malu loga. 70 00:03:30,200 --> 00:03:34,100 Tātad, lai noskaidrotu, kas tas ir, mēs esam lai iegūtu x-koordinātu apļa 71 00:03:34,100 --> 00:03:38,080 plus platums apļa, lai pārvietotos sevi no augšējā kreisajā 72 00:03:38,080 --> 00:03:40,650 stūra, efektīvi, lai augšējā labajā stūrī. 73 00:03:40,650 --> 00:03:43,700 Kad aplis virzās no tiesībām pa kreisi, tikmēr mums nav nepieciešams 74 00:03:43,700 --> 00:03:47,550 apgrūtināt ar šādu Turklāt, jo augšējā kreisajā stūrī apļa ir 75 00:03:47,550 --> 00:03:50,700 jau ir vērtība, mēs saņemt no get x. 76 00:03:50,700 --> 00:03:54,140 >> Pieņemsim tagad ripināt bumbu. 77 00:03:54,140 --> 00:04:00,900 Pieņemsim tagad glābt, apkopot un palaist šo programmas, veikt lielība. / lielība. 78 00:04:00,900 --> 00:04:02,230 Un tur mums ir programma. 79 00:04:02,230 --> 00:04:05,760 >> Bet aplis virzās tik darn ātri, tas ir gandrīz neiespējami, lai redzētu, kas ir 80 00:04:05,760 --> 00:04:07,060 patiesībā notiek. 81 00:04:07,060 --> 00:04:10,620 Tātad, pieņemsim diezgan programmu spēku ar noklikšķinot uz X augšējā labajā 82 00:04:10,620 --> 00:04:11,720 stūra šeit. 83 00:04:11,720 --> 00:04:15,300 Pieņemsim tagad iet atpakaļ uz pirmkodu un lēni lietas leju mazliet. 84 00:04:15,300 --> 00:04:19,240 >> Citiem vārdiem sakot, šajā termiņā bezgalīgs cilpa, nevis tikai un pārvietot un 85 00:04:19,240 --> 00:04:22,850 pārvietot un atkal, ad nauseum, pieņemsim vilkties tikai dažas milisekundes 86 00:04:22,850 --> 00:04:24,910 Pirms uzsākt pārvietoties vēlreiz. 87 00:04:24,910 --> 00:04:28,480 Jo īpaši, iesim uz leju par bezgalīgu cilpu šeit un vienkārši 88 00:04:28,480 --> 00:04:32,820 pauzes uz, teiksim, 10 milisekundes par katru atkārtojuma. 89 00:04:32,820 --> 00:04:36,690 Pieņemsim tagad recompile un atkārtoti palaist lielība. 90 00:04:36,690 --> 00:04:40,190 Un tagad mēs redzam daudz saprātīgu īstenošanu, kur mēs varam redzēt 91 00:04:40,190 --> 00:04:43,310 aplis patiesi veselīgs kreiso un labo malu. 92 00:04:43,310 --> 00:04:45,395