1 00:00:00,000 --> 00:00:05,069 2 00:00:05,069 --> 00:00:06,110 THOMAS Lively: Kull dritt. 3 00:00:06,110 --> 00:00:07,450 Hi, kulħadd. 4 00:00:07,450 --> 00:00:08,690 Jien Thomas Lively. 5 00:00:08,690 --> 00:00:15,160 Dan is-seminar se tkun miktub logħob 2D fis-C bl-użu SDL. 6 00:00:15,160 --> 00:00:17,970 So I taf int kollha tistaqsi, yeah, I really 7 00:00:17,970 --> 00:00:22,050 trid tilgħab logħob u jagħmlu logħob, imma dak li hu dan in-negozju SDL? 8 00:00:22,050 --> 00:00:25,320 Allura SDL hija librerija C. 9 00:00:25,320 --> 00:00:28,270 Hija tirrappreżenta l Sempliċi Saff Directmedia. 10 00:00:28,270 --> 00:00:31,340 U huwa pjattaforma transkonfinali, logħba librerija iżvilupp. 11 00:00:31,340 --> 00:00:37,160 Dan jaħdem fuq Windows, Mac, Linux, anki IOS u Android. 12 00:00:37,160 --> 00:00:40,380 Hija mankijiet affarijiet simili aċċess għas-sistemi awdjo 13 00:00:40,380 --> 00:00:44,900 għall-kompjuter, il-keyboard, u ġurdien, joysticks, jekk dawn qed imwaħħla. 14 00:00:44,900 --> 00:00:48,300 Fuq il-mowbajl, tista 'anki tagħmel l- touch input u kollha ta 'dak. 15 00:00:48,300 --> 00:00:53,030 U ovvjament, dan mankijiet grafika, tpinġija affarijiet għall-iskrin. 16 00:00:53,030 --> 00:00:56,470 >> Allura huwa użat b'mod wiesa 'ħafna, anki jekk inti tista 'ma smajt ta' qabel. 17 00:00:56,470 --> 00:01:00,860 Huwa mibni fis, per eżempju, Magna sors Valve, il 18 00:01:00,860 --> 00:01:04,970 fejn il-kompetenzi logħob bħal Portal u Team Fortress 2. 19 00:01:04,970 --> 00:01:08,680 Huwa wkoll f'numru kbir ħafna ta 'logħob Indie li toħroġ, 20 00:01:08,680 --> 00:01:13,545 hekk jien eċċitati biex tara dak li kollha se tkun qed tagħmel magħha. 21 00:01:13,545 --> 00:01:20,000 >> L-għanijiet seminar huma li inti tikseb stabbiliti biex tkun jiżviluppaw SDL. 22 00:01:20,000 --> 00:01:22,700 Aħna qed tmur biex jitgħallmu kif toħloq tieqa logħba. 23 00:01:22,700 --> 00:01:26,130 Aħna qed tmur biex joħolqu sprites, li huma l-immaġini fil-logħba tiegħek 24 00:01:26,130 --> 00:01:27,744 li jistgħu jiċċaqalqu madwar. 25 00:01:27,744 --> 00:01:29,910 Aħna qed tmur biex jitgħallmu kif għal u janimaw l-sprites, 26 00:01:29,910 --> 00:01:32,910 hekk mċaqalqa madwar, jagħmlu minnhom jinbidlu maż-żmien. 27 00:01:32,910 --> 00:01:35,580 U aħna qed tmur biex jitgħallmu kif biex jaqbdu keyboard u mouse 28 00:01:35,580 --> 00:01:38,240 input mill-kompjuter. 29 00:01:38,240 --> 00:01:41,550 Dak li aħna mhux se jitkellem dwar llum hija 3D graphics, 30 00:01:41,550 --> 00:01:45,520 minħabba li l kkumplikata ħafna suġġett li aħna ma jkollhom il-ħin għall. 31 00:01:45,520 --> 00:01:49,010 Aħna mhux se jitgħallmu kif play awdjo fuq logħob tagħna. 32 00:01:49,010 --> 00:01:53,300 U aħna mhux se tkun bini għal xejn imma Linux. 33 00:01:53,300 --> 00:01:58,330 >> Issa l-caveats hemm li, nisperaw, sa tmiem is-seminar, 34 00:01:58,330 --> 00:02:01,660 inti ser tkun komda ma ' id-dokumentazzjoni SDL, 35 00:02:01,660 --> 00:02:05,370 sabiex inti ser tkun tista 'tmur insemmu kif jilagħbu awdjo għalik innifsek. 36 00:02:05,370 --> 00:02:12,150 Bini wkoll għall Mac jew PC għandha taħdem eżattament l-istess bħal bini għall Linux, 37 00:02:12,150 --> 00:02:14,700 iżda l-setup għaddej biex jkun ftit differenti. 38 00:02:14,700 --> 00:02:17,700 Allura inti għandek tkun kapaċi biex insemmu kif jagħmlu dawn l-affarijiet 39 00:02:17,700 --> 00:02:20,900 sal-aħħar tal seminar tal-lum. 40 00:02:20,900 --> 00:02:26,980 >> Dan għall-imwaqqaf, aħna qed tmur li tuża magna virtwali. 41 00:02:26,980 --> 00:02:31,010 Aħna se jużaw l-IDE CS50, minħabba aħna qed biss se jkun miktub fil C. 42 00:02:31,010 --> 00:02:35,120 Iżda peress li l-IDE mhux browser, aħna ma tistax toħloq twieqi ġodda jew display 43 00:02:35,120 --> 00:02:36,410 graphics fiha. 44 00:02:36,410 --> 00:02:38,450 Għalhekk għandna bżonn magna virtwali. 45 00:02:38,450 --> 00:02:47,790 Allura inti tista 'ssegwi l-istruzzjonijiet hawn fuq manual.CS50.net/appliance/15 46 00:02:47,790 --> 00:02:53,290 biex tinstalla l-appliance CS50 uffiċjali, li huwa biss Linux virtwali 47 00:02:53,290 --> 00:02:55,110 magna. 48 00:02:55,110 --> 00:02:58,090 >> U allura ladarba inti għandek li kollha stabbiliti up-- dan 49 00:02:58,090 --> 00:03:02,090 jista 'jieħu ftit filwaqt li, minħabba a download-- kbir ħafna int ser 50 00:03:02,090 --> 00:03:07,060 li jseħħ fl-sudo apt-nikseb VM aġġornament. 51 00:03:07,060 --> 00:03:09,410 U li verament għaddejjin li taġġorna l-software 52 00:03:09,410 --> 00:03:12,670 pakketti fuq magna virtwali tiegħek. 53 00:03:12,670 --> 00:03:20,130 >> Wara dan, inti qed tmur jiddekorri sudo apt-nikseb jinstallaw, libsdl2-2.0-0, 54 00:03:20,130 --> 00:03:27,960 libsdl2-DBG, libsdl2-DEV, u addizzjonalment libsdl2--immaġni 2.0-0, 55 00:03:27,960 --> 00:03:32,560 libsdl2-immaġni DBG, u libsdl2-immaġni DEV. 56 00:03:32,560 --> 00:03:33,640 Allura dak li ma tagħmel? 57 00:03:33,640 --> 00:03:38,440 Li sempliċement jinstalla l-debug informazzjoni, dokumentazzjoni, headers, 58 00:03:38,440 --> 00:03:41,260 u binaries għal żewġ libreriji. 59 00:03:41,260 --> 00:03:45,090 Regolari qodma, SDL 2.0, u librerija ieħor 60 00:03:45,090 --> 00:03:50,110 imsejħa Image SDL, li aħna qed tmur biex tkun qed tuża 61 00:03:50,110 --> 00:03:54,560 tagħbija fajls immaġini fil-logħba tagħna. 62 00:03:54,560 --> 00:03:57,860 >> Allura ladarba inti għandek li wkoll li, biss meta hija tistaqsi, 63 00:03:57,860 --> 00:04:01,100 inti biss tip iva, hit Ikteb biex jinstallaw dawk il-pakketti, 64 00:04:01,100 --> 00:04:04,430 u allura inti għandek tkun tajba biex tmur. 65 00:04:04,430 --> 00:04:14,800 Allura biex jiksbu l-kodiċi ta 'distribuzzjoni, inti can-- oh qalb, din ma hux aġġornat. 66 00:04:14,800 --> 00:04:18,480 Sakemm ikollok account-- GitHub jekk għandek kont GitHub, 67 00:04:18,480 --> 00:04:24,450 inti tista 'tagħmel dan Git kmand klonu għall-repo 68 00:04:24,450 --> 00:04:30,490 u li se tniżżel l Git repo ma 'l-kodiċi fiha, 69 00:04:30,490 --> 00:04:31,700 sabiex inti ser ikollok l-kodiċi. 70 00:04:31,700 --> 00:04:36,470 >> Jekk inti ma għandekx GitHub kont, dak li għandek tagħmel huwa tip 71 00:04:36,470 --> 00:04:48,867 wgithttps: //github.com/tlively/sdl seminar-- u hawn huwa different-- 72 00:04:48,867 --> 00:04:49,700 /archive/master.zip. 73 00:04:49,700 --> 00:04:55,610 74 00:04:55,610 --> 00:04:59,220 Għalhekk għal darb'oħra, dak l-istess eżatt URL, ħlief li għaddej biex tkun 75 00:04:59,220 --> 00:05:09,010 tlively / SDL_seminar / master.zip u inti qed tuża wgit biex tniżżel dan. 76 00:05:09,010 --> 00:05:12,940 U allura inti tista 'sempliċement unzip li arkivju 77 00:05:12,940 --> 00:05:14,900 u allura inti ser ikollok l-source code. 78 00:05:14,900 --> 00:05:17,580 Allura sorry dwar dan. 79 00:05:17,580 --> 00:05:23,880 U allura l-kodiċi se tkun ospitata wkoll paġna web-seminar CS50 fil koppja 80 00:05:23,880 --> 00:05:25,230 jiem. 81 00:05:25,230 --> 00:05:26,590 >> Kull dritt. 82 00:05:26,590 --> 00:05:29,932 Allura kif nistgħu tibda miktub game tagħna stess? 83 00:05:29,932 --> 00:05:31,890 Ukoll, l-ewwel ħaġa aħna qed tmur jridu jagħmlu 84 00:05:31,890 --> 00:05:34,740 hu li tħares lejn id-dokumentazzjoni SDL. 85 00:05:34,740 --> 00:05:37,020 Allura hawnhekk-VM. 86 00:05:37,020 --> 00:05:38,720 U hawnhekk il-paġna web. 87 00:05:38,720 --> 00:05:40,340 Stajt navigati li jgħixu libsdl.org. 88 00:05:40,340 --> 00:05:43,110 89 00:05:43,110 --> 00:05:48,140 Dak li jien ser tagħmel hawnhekk hija tmur fuq għall-sidebar, taħt id-dokumentazzjoni, 90 00:05:48,140 --> 00:05:51,040 u kklikkja fuq il-wiki. 91 00:05:51,040 --> 00:05:56,870 Dan se jġib me lill-wiki li għandha ħafna mill-dokumentazzjoni għall SDL. 92 00:05:56,870 --> 00:06:01,360 Fuq ix-sidebar hawn, aħna qed ser ikklikkja API skond il-kategorija, 93 00:06:01,360 --> 00:06:04,300 għaliex huwa ser jagħti us-ħsieb kategorika sbieħ 94 00:06:04,300 --> 00:06:07,770 tal-API kollu għall SDL. 95 00:06:07,770 --> 00:06:12,390 >> Hekk per eżempju, għandna l inizjalizzazzjoni bażiku 96 00:06:12,390 --> 00:06:18,380 u mitfija, l-tip ta ' Jittieħed amministrattiva għall-użu SDL, 97 00:06:18,380 --> 00:06:21,630 u allura għandna l taqsima għal wiri affarijiet għall-iskrin. 98 00:06:21,630 --> 00:06:23,000 Li video. 99 00:06:23,000 --> 00:06:25,790 Avvenimenti Input, li jkollna kontribut mill-keyboard, 100 00:06:25,790 --> 00:06:29,710 jkollna input mill-maws, u l-joystick, jekk ikollok anke. 101 00:06:29,710 --> 00:06:32,901 Hemm forza feedback għall-affarijiet bħal kontrolluri logħba, li 102 00:06:32,901 --> 00:06:34,150 aħna mhux qed tmur biex jitkellmu dwar. 103 00:06:34,150 --> 00:06:35,630 U hawnhekk awdjo. 104 00:06:35,630 --> 00:06:38,940 U allura hemm mazz ta 'ieħor għalf li SDL jista 'jagħmel għalik. 105 00:06:38,940 --> 00:06:43,830 >> Imma llum aħna qed tmur biex tiffoka fuq il-inizjalizzazzjoni hawn, 106 00:06:43,830 --> 00:06:48,332 juri immaġini fil-video taqsima, u t-tqandil avvenimenti input. 107 00:06:48,332 --> 00:06:50,290 Allura dawn huma l-ewlenin sezzjonijiet ta 'dokumentazzjoni 108 00:06:50,290 --> 00:06:53,050 li inti għandek tkun inkwetanti dwar. 109 00:06:53,050 --> 00:06:57,170 Biss għall-gost, jekk immorru fuq hawn u kklikkja fuq API bl-isem, 110 00:06:57,170 --> 00:07:04,350 nistgħu tara lista ta 'kull ħaġa waħda fil-librerija SDL. 111 00:07:04,350 --> 00:07:11,330 Allura dawn il-funzjonijiet kollha, enumerazzjonijiet, strutturi, ammont crazy ta 'għalf, 112 00:07:11,330 --> 00:07:12,820 ordni alfabetiku. 113 00:07:12,820 --> 00:07:14,580 U b'mod ċar, sakemm inti taf li qed tagħmel, 114 00:07:14,580 --> 00:07:19,100 dan mhux se jkun utli wisq, huwa għalhekk li aħna nagħmlu API skond il-kategorija. 115 00:07:19,100 --> 00:07:20,810 >> Mela ejja tibda. 116 00:07:20,810 --> 00:07:25,680 Nisperaw inti stajt diġà jitniżżel il-kodiċi tad-distribuzzjoni. 117 00:07:25,680 --> 00:07:30,070 U għalhekk dak li inti tista 'tagħmel huwa, right hawn fl-appliance CS50, 118 00:07:30,070 --> 00:07:31,150 sempliċiment tiftaħ terminal. 119 00:07:31,150 --> 00:07:33,750 120 00:07:33,750 --> 00:07:34,440 Here we go. 121 00:07:34,440 --> 00:07:40,740 Hekk stajt diġà jitniżżel l- kodiċi distribuzzjoni bl-użu zip 122 00:07:40,740 --> 00:07:41,690 metodu. 123 00:07:41,690 --> 00:07:43,140 U stajt unzipped dan. 124 00:07:43,140 --> 00:07:46,120 Allura hawnhekk huwa fl-kaptan seminar SDL. 125 00:07:46,120 --> 00:07:49,750 Hekk jien se jmorru f'dik id-direttorju. 126 00:07:49,750 --> 00:07:55,310 U dak li naraw hawnhekk huwa li għandna seba fajls Ċ. 127 00:07:55,310 --> 00:07:58,070 U dan se-kodiċi aħna qed tmur biex tkun tħares lejn llum. 128 00:07:58,070 --> 00:08:00,040 Għandna makefile. 129 00:08:00,040 --> 00:08:06,950 U aħna għandna direttorju riżorsi, li sempliċement għandu immaġini 130 00:08:06,950 --> 00:08:09,070 li inti ser tkun qed tara malajr biżżejjed. 131 00:08:09,070 --> 00:08:16,060 >> Mela ejja jiftħu dawn il-fajls bl-użu editur G-Edit. 132 00:08:16,060 --> 00:08:22,000 So I tixtieq li tiftaħ il-fajls kollha li tibda bil bonjour u jintemm bit .c. 133 00:08:22,000 --> 00:08:23,380 Here we go. 134 00:08:23,380 --> 00:08:28,180 Allura dak tieqa żgħira, hekk aħna qed ser jippruvaw jagħmlu dan akbar. 135 00:08:28,180 --> 00:08:28,900 Le, marru. 136 00:08:28,900 --> 00:08:32,836 137 00:08:32,836 --> 00:08:34,570 >> Kull dritt. 138 00:08:34,570 --> 00:08:37,959 Allura hawnhekk-ewwel fajl aħna qed tmur biex tħares lejn. 139 00:08:37,959 --> 00:08:39,000 Huwa sejjaħ hello1_sdl.c. 140 00:08:39,000 --> 00:08:41,890 141 00:08:41,890 --> 00:08:47,980 U dan kollu ma huwa initialize l SDL librerija sabiex inkunu nistgħu jibdew jużawh. 142 00:08:47,980 --> 00:08:51,550 Kif tkun taf li ġejjin up ma 'dan il-kodiċi yourself? 143 00:08:51,550 --> 00:08:53,850 Ukoll, jekk inħarsu aktar fil--dokumentazzjoni 144 00:08:53,850 --> 00:08:58,040 u aħna jmorru fil-inizjalizzazzjoni u mitfija it-taqsima, 145 00:08:58,040 --> 00:09:02,230 li għaddej biex tgħidilna kollha dwar kif initialize SDL. 146 00:09:02,230 --> 00:09:06,630 Allura definittivament taqra dan xi żmien ieħor. 147 00:09:06,630 --> 00:09:09,230 Li għaddej biex jgħidlek kollha dwar x'inhu għaddej hawn. 148 00:09:09,230 --> 00:09:14,360 Iżda l-punt kruċjali prinċipali tal-kwistjoni hija li għandna bżonn li sejħa dan SDL funzjoni Fil Huwa 149 00:09:14,360 --> 00:09:18,910 u tgħaddih liema tip ta 'affarijiet irridu li l-librerija biex initialize. 150 00:09:18,910 --> 00:09:23,620 Allura fil-każ tagħna, aħna qed biss jmorru initialize l-video għal issa, 151 00:09:23,620 --> 00:09:26,690 sabiex inkunu tista 'tibda wiri immaġini. 152 00:09:26,690 --> 00:09:32,370 >> Hawn fuq, tista 'tara jekk aħna ikklikkja fuq SDL fiha, aħna 153 00:09:32,370 --> 00:09:36,160 jista 'jikseb saħansitra aktar informazzjoni, inkluż il-valur tar-ritorn. 154 00:09:36,160 --> 00:09:39,050 Allura naraw hawn li returnes żero fuq is-suċċess. 155 00:09:39,050 --> 00:09:43,320 Allura fil-kodiċi tagħna, aħna qed tmur biex ara jekk dan ma jerġax lura żero, 156 00:09:43,320 --> 00:09:47,020 u jekk ma jerġax lura żero, u għalhekk ma kienx ta 'suċċess, 157 00:09:47,020 --> 00:09:50,650 allura aħna qed tmur biex sempliċiment print żball jużaw din il-funzjoni l-oħra, 158 00:09:50,650 --> 00:09:56,260 SDL get żball, li jirritorna string jiddeskrivi l-iżball li sar. 159 00:09:56,260 --> 00:09:58,510 Aħna qed tmur biex jistampaw li żball u allura aħna qed biss 160 00:09:58,510 --> 00:10:02,270 ser joħorġu mis-programm ma 'kodiċi ta' żball. 161 00:10:02,270 --> 00:10:06,470 >> Imbagħad ħaġa oħra li għandna bżonn tagħmel hu, qabel ħruġ programm, 162 00:10:06,470 --> 00:10:10,830 jekk aħna b'suċċess initialized SDL, Jinħtieġ li hija sejħa SDL nieqaf. 163 00:10:10,830 --> 00:10:15,750 U li għaddej biex jimmaniġġaw tindif kollha tar-riżorsi interni SDL għalina. 164 00:10:15,750 --> 00:10:21,240 Allura id-dokumentazzjoni there-- mill-ġdid, aħna qegħdin hawn fil-inizjalizzazzjoni 165 00:10:21,240 --> 00:10:23,640 u mitfija taqsima tad-dokumentazzjoni. 166 00:10:23,640 --> 00:10:26,680 Inti tista 'sempliċement ikklikkja fuq il- funzjoni hawn, SDL nieqaf, 167 00:10:26,680 --> 00:10:28,700 u inti tista 'taqra kollha dwar dan ukoll. 168 00:10:28,700 --> 00:10:31,400 U ħafna ta 'dawn il-funzjoni paġni dokumentazzjoni 169 00:10:31,400 --> 00:10:35,630 ikollhom eżempju kodiċi, għalhekk dan huwa riżorsa tajba ħafna. 170 00:10:35,630 --> 00:10:39,610 Żgur jqattgħu xi żmien qari partijiet ta 'dan wiki 171 00:10:39,610 --> 00:10:42,520 jekk int ser tagħmel dan għal proġett. 172 00:10:42,520 --> 00:10:43,760 >> Kull dritt. 173 00:10:43,760 --> 00:10:46,590 Allura dak programm kollu tagħna. 174 00:10:46,590 --> 00:10:53,935 Dak li nistgħu nagħmlu issa is-- jien ser tiftaħ il-makefile hawn, 175 00:10:53,935 --> 00:10:56,150 hekk jien ser jieħdu tħares lejn kif li jaħdem. 176 00:10:56,150 --> 00:10:59,500 U huwa makefile sempliċi ħafna, simili għal dak li inti stajt tidher qabel. 177 00:10:59,500 --> 00:11:04,010 Wieħed mill-differenzi ewlenin hija li, hawnhekk, dan 178 00:11:04,010 --> 00:11:07,870 se daħħal ir-riżultat ta 'tmexxija dan il-kmand, li inti stajt diġà 179 00:11:07,870 --> 00:11:10,850 installati jekk inti ħadthom installati SDL. 180 00:11:10,850 --> 00:11:13,230 U dan huwa kmand li għaddej biex jiġġeneraw 181 00:11:13,230 --> 00:11:16,710 xi bnadar żejda għall-kompilatur. 182 00:11:16,710 --> 00:11:22,050 >> B'żieda għal dan, aħna qed jtuha l-kmandi tas-soltu, kif ukoll 183 00:11:22,050 --> 00:11:23,430 dawn iż-żewġ jikkmanda. 184 00:11:23,430 --> 00:11:30,270 Allura l--lsdl2-immaġni manki jgħaqqad fil-librerija immaġini SDL. 185 00:11:30,270 --> 00:11:36,200 U l--lm attwalment mankijiet jgħaqqdu fil-matematika librerija C standard. 186 00:11:36,200 --> 00:11:40,630 Allura aħna mhux ser jeħtieġu dawk għall kollha ta 'fajls C tagħna, 187 00:11:40,630 --> 00:11:43,900 imma aħna biss jitqiegħed fil sabiex inkunu nistgħu jużaw l-istess makefile għal kollox 188 00:11:43,900 --> 00:11:44,816 mingħajr modifiki. 189 00:11:44,816 --> 00:11:46,970 190 00:11:46,970 --> 00:11:50,080 >> Hawn fuq fis-sorsi, dan huwa fejn youd 191 00:11:50,080 --> 00:11:53,680 tpoġġi l-fajls li inti kienu se biex jikkompilaw għall-proġett tiegħek. 192 00:11:53,680 --> 00:11:57,570 Iżda peress li kull wieħed mill C tiegħi fajls hawn għandu funzjoni ewlenija, 193 00:11:57,570 --> 00:12:00,000 li għaddej biex tikseb konfuż jekk aħna jpoġġuhom kollha fil. 194 00:12:00,000 --> 00:12:06,930 Hekk jien ser biss jgħidu, għal issa, hello1_sdl.c, 195 00:12:06,930 --> 00:12:11,150 li huwa l-waħda aħna biss ħares lejn. 196 00:12:11,150 --> 00:12:18,740 Mela jekk immur lura matul hawn, I tista 'ma tagħmel. 197 00:12:18,740 --> 00:12:22,160 U dak li għamlet hija biss kkompilata li l-ewwel fajl. 198 00:12:22,160 --> 00:12:28,780 U allura aħna tista tip ./game, minħabba huwa l-eżekutibbli huwa għamel. 199 00:12:28,780 --> 00:12:31,660 U kull ma għamlet kien print inizjalizzazzjoni ta 'suċċess. 200 00:12:31,660 --> 00:12:33,300 Allura għamilna xi ħaġa dritt. 201 00:12:33,300 --> 00:12:36,200 Iżda dan kien tip ta 'boring, għaliex aħna ma tara tieqa, 202 00:12:36,200 --> 00:12:37,900 xejn kien miexi madwar. 203 00:12:37,900 --> 00:12:41,030 >> Hekk kbir, sirna SDL initialized. 204 00:12:41,030 --> 00:12:43,520 Issa, ejja jimxu fuq xi ħaġa ftit aktar interessanti. 205 00:12:43,520 --> 00:12:54,700 Allura hawnhekk għandna hello2_window.c, u dan se jkun ftit aktar 206 00:12:54,700 --> 00:13:00,010 programm C kumpless li initializes SDL bħad qabel, 207 00:13:00,010 --> 00:13:04,250 ħlief issa aħna qed wkoll se initialize timer SDL. 208 00:13:04,250 --> 00:13:07,720 U dan se let us aċċess għall-timer intern 209 00:13:07,720 --> 00:13:10,550 u l-funzjonijiet użu relatat għal żmien. 210 00:13:10,550 --> 00:13:11,920 >> U mbagħad ejja tfittex l isfel hawn. 211 00:13:11,920 --> 00:13:16,840 Dak li nagħmlu hija li għandna din pointer għal Struct tieqa SDL, li 212 00:13:16,840 --> 00:13:21,160 se tkun maħluqa minn din is-sejħa għall-funzjoni, SDL joħolqu tieqa. 213 00:13:21,160 --> 00:13:25,380 Issa, dan jieħu ħafna argumenti, so ejja go nħarsu lejn id-dokumentazzjoni. 214 00:13:25,380 --> 00:13:27,930 Għalhekk għal darb'oħra, jien ser API skond il-kategorija, jien 215 00:13:27,930 --> 00:13:33,820 jinżel 'l isfel għall-vidjo hawn, u l-ewwel taqsima, wiri ġestjoni tieqa. 216 00:13:33,820 --> 00:13:36,470 Allura din is-sezzjoni għandha ton ta 'għalf fiha, 217 00:13:36,470 --> 00:13:39,970 imma jekk inti tfittex permezz dawn il-funzjonijiet, inti ser 218 00:13:39,970 --> 00:13:43,620 tara li probabbilment l-waħda aħna tixtieq tissejjaħ SDL toħloq tieqa, 219 00:13:43,620 --> 00:13:46,600 li jiġri li jkun tajjeb fil-quċċata. 220 00:13:46,600 --> 00:13:49,080 >> U għalhekk dan huwa l- dokumentazzjoni għal din il-funzjoni. 221 00:13:49,080 --> 00:13:53,710 It-tieqa għaddej biex ikollhom titolu, x u l-pożizzjoni y fuq l-iskrin, 222 00:13:53,710 --> 00:13:56,960 li għaddej biex ikollhom wisa, għoli, u mbagħad li għaddej biex tieħu xi bnadar. 223 00:13:56,960 --> 00:14:01,220 Issa, aħna ma attwalment kura dwar kwalunkwe minn dawn il-bnadar dritt issa, 224 00:14:01,220 --> 00:14:04,560 imma jekk inti riedu jagħmlu xi ħaġa bħal tagħmel tieqa full screen, 225 00:14:04,560 --> 00:14:07,920 inti tista 'tagħti ħarsa lejn dak. 226 00:14:07,920 --> 00:14:13,190 Għal issa, aħna qed biss jmorru biex jużaw dawn il-valuri speċjali, 227 00:14:13,190 --> 00:14:18,775 Tieqa SDL plus ċċentrata għall x uy sabiex 228 00:14:18,775 --> 00:14:21,800 biss joħolqu l-tieqa fiċ-ċentru ta iskrin tagħna. 229 00:14:21,800 --> 00:14:24,370 >> Allura dak hu li dan qed jagħmel. 230 00:14:24,370 --> 00:14:27,960 U jekk tieqa jiġri li jkun null, li jfisser hemm żball, 231 00:14:27,960 --> 00:14:32,570 imbagħad għal darb'oħra aħna qed biss ser jistampa l-iżball użu iżball get SDL. 232 00:14:32,570 --> 00:14:36,570 U allura għaliex aħna initialized SDL, aħna issa jeħtieġ li tagħlaq dan. 233 00:14:36,570 --> 00:14:40,900 Allura nitolbu SDL nieqaf qabel jirritornaw wieħed għal prinċipali. 234 00:14:40,900 --> 00:14:42,905 >> Allura aħna għandna dan il-tieqa miftuħa nisperaw. 235 00:14:42,905 --> 00:14:44,613 U dak li aħna qed tmur tagħmel hu aħna qed tmur 236 00:14:44,613 --> 00:14:50,340 sejħa SDL għall 5,000 millisekondi, li hija l-istess bħal ħames sekondi. 237 00:14:50,340 --> 00:14:55,640 U meta aħna qed isir ma 'dan, li għaddej biex jeqirdu l-tieqa, 238 00:14:55,640 --> 00:14:59,470 jitnaddaf l-librerija SDL, u ħruġ tal-programm. 239 00:14:59,470 --> 00:15:05,240 Mela ejja imorru quddiem u tagħti lil dak sparatura. 240 00:15:05,240 --> 00:15:08,660 >> Allura issa minflok jinbidlu l makefile kull darba, 241 00:15:08,660 --> 00:15:12,180 I tista 'sempliċement ma tagħmel, u imbagħad fuq il-linja tal-kmand, 242 00:15:12,180 --> 00:15:16,090 jgħidu sorsi jkun ugwali u mbagħad il-fajl aħna qed kumpilazzjoni. 243 00:15:16,090 --> 00:15:17,090 Allura huwa hello2_window.c. 244 00:15:17,090 --> 00:15:21,390 245 00:15:21,390 --> 00:15:21,890 Fantastic. 246 00:15:21,890 --> 00:15:22,970 Ebda erros. 247 00:15:22,970 --> 00:15:26,085 Issa, jekk aħna run eżegwibbli tagħna, naraw dan il-tieqa. 248 00:15:26,085 --> 00:15:27,960 Issa hemm ftit problemi bil-tieqa. 249 00:15:27,960 --> 00:15:32,820 Nistgħu jimxu madwar, iżda għandha dan junk isfond ġewwa ta 'dan. 250 00:15:32,820 --> 00:15:34,660 Allura aħna ma miġbuda xejn, u għalhekk huwa 251 00:15:34,660 --> 00:15:38,210 biss sħiħa ta 'żibel, li hija pjuttost dak li nistennew. 252 00:15:38,210 --> 00:15:41,010 >> Barra minn hekk, ma nistgħux qrib it-tieqa. 253 00:15:41,010 --> 00:15:44,780 Jien ippressar dan X fil- kantuniera u xejn qed jiġri. 254 00:15:44,780 --> 00:15:47,840 Allura aħna ser tara kif jiffissaw li fi ftit ftit. 255 00:15:47,840 --> 00:15:51,750 Mela ejja tiffissa l-parti fejn il- tieqa hija sħiħa ta 'żibel ewwel. 256 00:15:51,750 --> 00:16:00,850 Mela jekk immorru quddiem għall hello3_image.c, liema nistgħu naraw huwa li konna miżjud ftit 257 00:16:00,850 --> 00:16:03,360 affarijiet aktar hawn. 258 00:16:03,360 --> 00:16:08,740 Imxejna miżjud dan header ġdida fajl li jiksbu l-funzjonijiet tajmer. 259 00:16:08,740 --> 00:16:11,490 I raden aħna ma li fl-aħħar wieħed, wisq, u jien ma jsemmuha. 260 00:16:11,490 --> 00:16:13,550 Imma issa għaliex aħna qed taħdem bi stampi, 261 00:16:13,550 --> 00:16:18,720 għandna bżonn li jinkludi l-SDL fajl header image ukoll. 262 00:16:18,720 --> 00:16:22,087 Allura huwa l-istess ħaġa bħat qabel, initializing SDL hawn, 263 00:16:22,087 --> 00:16:23,420 istess jittrattaw mal-ħolqien twieqi. 264 00:16:23,420 --> 00:16:25,380 Rajna li qabel issa. 265 00:16:25,380 --> 00:16:29,870 >> Issa għandna bżonn li tinħoloq xi ħaġa imsejħa a renderer, liema tip ta jmur flimkien 266 00:16:29,870 --> 00:16:30,800 mal-tieqa. 267 00:16:30,800 --> 00:16:33,860 Imma hija tip ta ' oġġett astratt li l- 268 00:16:33,860 --> 00:16:37,370 responsabbli li jagħmlu dawn kollha tpinġija operazzjonijiet għall-tieqa. 269 00:16:37,370 --> 00:16:41,580 U fil-fatt jikkorrispondi għal programm mgħobbija 270 00:16:41,580 --> 00:16:47,880 fil-hardware grafika tiegħek kompjuter jew telefon tiegħek jew ikun x'ikun. 271 00:16:47,880 --> 00:16:51,005 Allura l-bnadar li rridu jgħaddu it-- u inti tista 'tħares lejn id-dokumentazzjoni 272 00:16:51,005 --> 00:16:56,160 biex tikseb aktar dettall here-- ser li jiġu SDL jirrendu aċċellerat, li 273 00:16:56,160 --> 00:16:58,550 ifisser li għaddej biex tkun bl-użu grafika hardware 274 00:16:58,550 --> 00:17:01,490 u mhux biss imitat fis-software. 275 00:17:01,490 --> 00:17:07,390 >> U aħna qed tmur għall-użu SDL renderer PRESENTVSYNC. 276 00:17:07,390 --> 00:17:12,280 VSYNC hija ħaġa li sempliċiment tagħmel grafika tiegħek ħarsa jipprevjeni aħjar u 277 00:17:12,280 --> 00:17:14,970 dan ħaġa imsejħa screen terrur, fejn nofs 278 00:17:14,970 --> 00:17:17,720 ta 'qafas wieħed u nofs l-ieħor frejm jiksbu mfassla fl-istess ħin 279 00:17:17,720 --> 00:17:20,056 u jidher orribbli. 280 00:17:20,056 --> 00:17:23,130 Iżda għal darb'oħra, inti tista 'tmur taqra dwar li fuq tiegħek. 281 00:17:23,130 --> 00:17:24,319 >> Allura aħna għandna xi bnadar hawn. 282 00:17:24,319 --> 00:17:27,810 U hekk aħna qed biss ser sejħa dan SDL funzjoni joħolqu renderer. 283 00:17:27,810 --> 00:17:31,340 Aħna qed tmur biex jagħtuh il-tieqa li jassoċja ma 'dik renderer. 284 00:17:31,340 --> 00:17:34,520 Waħda negattiva ifisser li aħna ma kura liema grafika sewwieq aħna qed tmur għall-użu. 285 00:17:34,520 --> 00:17:36,603 Allura li għandhom pretty ħafna dejjem tkun waħda negattiva, 286 00:17:36,603 --> 00:17:39,010 sakemm inti taf dwar is-sewwieqa grafika. 287 00:17:39,010 --> 00:17:41,650 U allura aħna qed biss jmorru tgħaddih bnadar tagħna. 288 00:17:41,650 --> 00:17:47,240 Mela jekk dan jirritorna null, allura aħna qed morna għall-istampa l-iżball bħas-soltu, 289 00:17:47,240 --> 00:17:49,550 iżda mbagħad aħna qed wkoll se li jeqirdu l-tieqa 290 00:17:49,550 --> 00:17:54,970 biex tnaddaf dawk ir-riżorsi qabel ssejjaħ SDL nieqaf u r-ritorn. 291 00:17:54,970 --> 00:17:58,110 >> Issa, il-parti interessanti hawn huwa fejn aħna tagħbija immaġini tagħna 292 00:17:58,110 --> 00:18:00,870 jużaw din IMG_load funzjoni. 293 00:18:00,870 --> 00:18:04,050 Dan huwa l-uniku funzjoni aħna qed tmur għall-użu mill-bibljoteka immaġini SDL. 294 00:18:04,050 --> 00:18:05,480 Hu l-unika waħda għandna bżonn. 295 00:18:05,480 --> 00:18:12,950 Huwa funzjoni li jieħu l-sekwenza li hija t-triq ta 'kull riżorsa immaġini. 296 00:18:12,950 --> 00:18:18,024 U jista 'jkun png, a GIF, Bitmap, kwalunkwe minn dawn l-affarijiet. 297 00:18:18,024 --> 00:18:19,690 U hu għalhekk li din il-funzjoni huwa hekk sbieħ. 298 00:18:19,690 --> 00:18:22,560 Dan jista 'jittratta pretty ħafna xi format. 299 00:18:22,560 --> 00:18:27,240 Tagħbijiet fis memorja u taħżnu bħala ħaġa imsejjaħ wiċċ SDL. 300 00:18:27,240 --> 00:18:34,660 >> Issa wiċċ SDL hija biss Istituzzjonjijiet li tirrappreżenta data ta 'immaġini fil-memorja. 301 00:18:34,660 --> 00:18:38,054 Allura inti tista 'taqra aktar dwar li fid-dokumentazzjoni tnejn. 302 00:18:38,054 --> 00:18:40,720 U jekk dan żbalji, allura aħna qed se tagħmel il-ħaġa sħiħa fejn 303 00:18:40,720 --> 00:18:44,480 aħna jistampaw il-żball, jintefa tagħna riżorsi, u mbagħad nieqaf-programm. 304 00:18:44,480 --> 00:18:48,970 Issa l-ħaġa interessanti hija, qabel nistgħu tiġbed din id-dehra għall-tieqa, 305 00:18:48,970 --> 00:18:51,390 għandna bżonn li attwalment jagħmilha texture. 306 00:18:51,390 --> 00:18:54,460 Issa ftit jikkorrispondi nisġa li data ta 'immaġini mgħobbija 307 00:18:54,460 --> 00:18:57,820 fil-memorja hardware tal-grafika tal tal. 308 00:18:57,820 --> 00:19:00,720 >> Allura wiċċ huwa prinċipali memorja, memorja regolari 309 00:19:00,720 --> 00:19:05,550 li aħna kont qed tuża l semestru, u texture Huwa f'dan VRAM separata 310 00:19:05,550 --> 00:19:09,410 memorja li l-kontrolli karta grafika. 311 00:19:09,410 --> 00:19:13,170 Allura nitolbu din il-funzjoni SDL_CreateTextureFromSurface. 312 00:19:13,170 --> 00:19:17,104 Nagħtu renderer tagħna u l-wiċċ tagħna. 313 00:19:17,104 --> 00:19:19,020 U allura aħna qed attwalment jsir bil-wiċċ, 314 00:19:19,020 --> 00:19:20,311 hekk aħna qed biss jmorru ħielsa it. 315 00:19:20,311 --> 00:19:22,210 Aħna ma bżonnha aktar. 316 00:19:22,210 --> 00:19:26,650 U allura hekk jekk din is-sejħa errored u lura null, 317 00:19:26,650 --> 00:19:29,630 allura aħna qed tmur biex tagħmel l-sħiħ rappurtar ħaġa mill-ġdid żball. 318 00:19:29,630 --> 00:19:30,920 >> Kull dritt. 319 00:19:30,920 --> 00:19:34,810 Hawnhekk, irridu jiksbu fis xi funzjonijiet tirrendi attwali. 320 00:19:34,810 --> 00:19:37,730 Allura ssejjaħ SDL_RenderClear u jgħaddiha 321 00:19:37,730 --> 00:19:42,550 l renderer assoċjat with window tagħna sempliċiment jagħmel il-tieqa jmorru iswed. 322 00:19:42,550 --> 00:19:47,650 Għalhekk tneħħi li junk li rajna fil tieqa tagħna qabel u jagħmilha iswed. 323 00:19:47,650 --> 00:19:50,750 U allura aħna qed tmur sejħa SDL_RenderCopy, 324 00:19:50,750 --> 00:19:53,010 tagħtiha renderer tagħna, nisġa tagħna. 325 00:19:53,010 --> 00:19:55,800 U aħna ser nitkellmu dwar dak li dawn l-oqsma huma daqsxejn. 326 00:19:55,800 --> 00:19:57,830 Iżda li għaddej biex jieħdu l-data nisġa 327 00:19:57,830 --> 00:20:03,100 u kopja hija fuq tagħna tieqa tiġbed l-immaġini. 328 00:20:03,100 --> 00:20:07,020 Allura wara we ghamilt din il-kopja id-data għal fuq tieqa tagħna, 329 00:20:07,020 --> 00:20:11,180 għandna nagħmlu din il-funzjoni addizzjonali imsejħa SDL_RenderPresent. 330 00:20:11,180 --> 00:20:15,360 >> U dan huwa interessanti għaliex dan gets 331 00:20:15,360 --> 00:20:18,770 fi tema imsejjaħ buffering doppja. 332 00:20:18,770 --> 00:20:24,380 Allura buffering doppja hija teknika li jagħmel grafika tiegħek ħarsa ħafna aħjar. 333 00:20:24,380 --> 00:20:28,240 Għal darb'oħra, dan jevita li dmugħ screen I kien tkellem dwar preċedenti, fejn 334 00:20:28,240 --> 00:20:29,590 għandek żewġ buffers. 335 00:20:29,590 --> 00:20:32,260 Hemm buffer lura fil memorja u buffer quddiem. 336 00:20:32,260 --> 00:20:36,410 Il-buffer quddiem huwa litteralment x'hemm fuq l-iskrin tiegħek fil-mument. 337 00:20:36,410 --> 00:20:42,070 Allura nagħmlu kollha dawn tiġbed varjazzjonijiet, bħal SDL tirrendi kopja jew SDL_RenderClear 338 00:20:42,070 --> 00:20:43,080 għall-buffer lura. 339 00:20:43,080 --> 00:20:44,800 Allura dawn jimmodifikaw affarijiet fil-buffer dahar. 340 00:20:44,800 --> 00:20:48,970 Here we jista 'jkun tpinġija din kwadru aħdar għall-buffer lura. 341 00:20:48,970 --> 00:20:52,300 >> Allura mbagħad meta aħna qed isir nagħmlu jagħmlu operazzjonijiet tagħna, li 342 00:20:52,300 --> 00:20:55,700 jista 'jieħu twil verament ħin, dak li aħna qed tmur biex tagħmel 343 00:20:55,700 --> 00:20:57,860 huwa jaqilbu l-buffers. 344 00:20:57,860 --> 00:21:00,720 Allura litteralment biss jieħu l- buffer quddiem u l-buffer lura 345 00:21:00,720 --> 00:21:02,990 u swiċċijiet minnhom, sabiex li, istantanju, 346 00:21:02,990 --> 00:21:06,630 f'operazzjoni waħda, minflok forsi mijiet jew eluf, 347 00:21:06,630 --> 00:21:10,910 kollha tagħna għadhom kif ġew mogħtija oġġetti huma fuq l-iskrin. 348 00:21:10,910 --> 00:21:13,160 U dan jipprevjeni affarijiet bħall-iġjeniċi iskrin 349 00:21:13,160 --> 00:21:16,710 nofs meta konna biss miktuba ta 'oġġetti tagħna għall-qafas. 350 00:21:16,710 --> 00:21:21,280 Allura huwa għalhekk li għandna bżonn tirrikorri SDL_RenderPresent, kif ukoll 351 00:21:21,280 --> 00:21:23,320 kif SDL_RenderCopy. 352 00:21:23,320 --> 00:21:25,749 >> Għal darb'oħra, aħna qed biss jmorru li tistenna għal ħames sekondi. 353 00:21:25,749 --> 00:21:27,540 Allura aħna qed tmur biex tnaddaf riżorsi tagħna. 354 00:21:27,540 --> 00:21:29,540 Għandna pjuttost ftit aktar dan iż-żmien. 355 00:21:29,540 --> 00:21:31,750 U allura aħna qed biss jmorru għall-ħruġ tal-programm. 356 00:21:31,750 --> 00:21:35,350 Mela ejja tagħmel dan. 357 00:21:35,350 --> 00:21:41,880 Jien ser tip għamla, u mbagħad sorsi ugwali hello-- issa 3image.c dan huwa. 358 00:21:41,880 --> 00:21:49,632 359 00:21:49,632 --> 00:21:52,240 Kull dritt, dik ikkumpilata l-ebda żbalji. 360 00:21:52,240 --> 00:21:57,210 U tista 'tara hawn stajt issa miġbudin image tiegħi, Hello, CS50! 361 00:21:57,210 --> 00:22:00,560 tieqa tagħna, li tisparixxi wara ħames sekondi. 362 00:22:00,560 --> 00:22:02,090 >> Issa, dan xorta għandu problemi, right? 363 00:22:02,090 --> 00:22:05,750 Din mhix applikazzjoni tajba, għaliex meta nipprova li tagħlaq il-tieqa, 364 00:22:05,750 --> 00:22:06,500 xejn jiġri. 365 00:22:06,500 --> 00:22:09,540 Li x għadu mhux responsivi. 366 00:22:09,540 --> 00:22:17,420 Mela ejja tagħti ħarsa lejn l- fajl jmiss, hello4animation. 367 00:22:17,420 --> 00:22:21,850 Allura dan huwa l-fajl li għaddej biex jintroduċu 368 00:22:21,850 --> 00:22:25,124 jiċċaqilqu u moviment mad-dehra tagħna. 369 00:22:25,124 --> 00:22:27,040 Allura aħna qed tmur biex jagħmlu l- istess ħaġa bħal qabel, 370 00:22:27,040 --> 00:22:30,190 tibda SDL, joħolqu l- tieqa, joħolqu l-renderer, 371 00:22:30,190 --> 00:22:33,030 tagħbija l-immaġni fi memorja, joħolqu l-istruttura. 372 00:22:33,030 --> 00:22:35,090 Rajna kollha li qabel. 373 00:22:35,090 --> 00:22:36,770 Issa, dan huwa ġdid. 374 00:22:36,770 --> 00:22:42,305 Aħna qed tmur biex ikollha struttura imsejħa l rect SDL, li huwa biss rettangolu. 375 00:22:42,305 --> 00:22:49,950 Jekk immorru minn hawn, nistgħu tagħmel tfittxija għal rect SDL, 376 00:22:49,950 --> 00:22:54,040 u tista 'tara huwa struttura sempliċi ħafna. 377 00:22:54,040 --> 00:22:56,760 Hija għandha x, y għal il-pożizzjoni, u 378 00:22:56,760 --> 00:23:02,080 għandha wisa 'u għoli għall id-daqs tar-rettangolu. 379 00:23:02,080 --> 00:23:07,785 >> Allura dak li aħna qed tmur biex tagħmel hu li aħna qed ser jiddefinixxu dan SDL dest rect, 380 00:23:07,785 --> 00:23:09,480 għad-destinazzjoni. 381 00:23:09,480 --> 00:23:14,130 U dan huwa l-post fuq l-iskrin fejn 382 00:23:14,130 --> 00:23:16,005 aħna qed tmur biex jiġu tpinġija immaġini tagħna, id-dritt So 383 00:23:16,005 --> 00:23:17,880 jekk aħna qed tmur biex tkun jiċċaqalqu l-immaġni madwar, 384 00:23:17,880 --> 00:23:20,300 allura l-destinazzjoni fejn aħna qed tmur biex tiġbed l-immaġini 385 00:23:20,300 --> 00:23:22,620 jeħtieġ li jkunu jiċċaqilqu madwar. 386 00:23:22,620 --> 00:23:24,910 Allura aħna qed tmur biex sejħa dan SDL_QueryTexture funzjoni. 387 00:23:24,910 --> 00:23:27,550 388 00:23:27,550 --> 00:23:33,500 U avviż jien jgħaddi l-indirizz tal dest.w, li hija l-wisa ', 389 00:23:33,500 --> 00:23:36,950 u dest.h, li huwa l-għoli. 390 00:23:36,950 --> 00:23:40,425 U għalhekk SDL_QueryTexture va li jaħżen f'dawk l-oqsma l-wisa ' 391 00:23:40,425 --> 00:23:41,675 u l-għoli ta 'nisġa tagħna. 392 00:23:41,675 --> 00:23:44,680 393 00:23:44,680 --> 00:23:47,030 >> U allura dak li jien ser tagħmel hu jien ser 394 00:23:47,030 --> 00:23:55,580 li jiġu stabbiliti dest.x li jkun tieqa dest.w nieqes wisa ', li hija 395 00:23:55,580 --> 00:23:59,000 l-wisa 'tal-Sprite, diviż bl 2. 396 00:23:59,000 --> 00:24:03,860 U dan se din tintrama b'tali mod li l-immaġini huwa perfettament ċċentrata 397 00:24:03,860 --> 00:24:06,780 Tieqa tagħna, id-dritt? 398 00:24:06,780 --> 00:24:08,652 Allura issa I għandhom pożizzjoni y. 399 00:24:08,652 --> 00:24:10,360 U dan se jkun fattur varjabbli li l- 400 00:24:10,360 --> 00:24:16,390 jinbidlu, għaliex aħna qed tmur biex tkun jiċċaqalqu l-immaġini fil-direzzjoni y. 401 00:24:16,390 --> 00:24:19,050 U issa għandna xi ħaġa jissejjaħ loop animazzjoni. 402 00:24:19,050 --> 00:24:21,180 >> Allura kif ma 'l-animazzjoni taħdem? 403 00:24:21,180 --> 00:24:27,630 Ukoll, għajn tal-bniedem jistgħu jindividwaw 12 distinta immaġini f'kull sekonda, id-dritt? 404 00:24:27,630 --> 00:24:33,060 Mela jekk inti flash 12 cards immaġni fil lili fit-tieni, I raw kull wieħed minn dawk l-immaġini 405 00:24:33,060 --> 00:24:35,950 kif image individwali distinti tagħha stess. 406 00:24:35,950 --> 00:24:39,690 Issa, jekk inti flash aktar immaġini fil lili fit-tieni, 407 00:24:39,690 --> 00:24:42,140 allura għajn tiegħi kienet ser tibda biex iċajpru flimkien 408 00:24:42,140 --> 00:24:46,920 u nixtieq jipperċepiha bħala mozzjoni, minflok immaġini waħda distinti. 409 00:24:46,920 --> 00:24:51,930 Għalhekk, per eżempju, films u televiżjoni, dawn flash immaġini fil inti 24 darba 410 00:24:51,930 --> 00:24:52,570 tieni. 411 00:24:52,570 --> 00:24:55,110 Allura dak 24 frejm kull sekonda. 412 00:24:55,110 --> 00:25:00,136 Iskrins tal-kompjuter, min-naħa l-oħra, spiss huma fi 60 frejm kull sekonda. 413 00:25:00,136 --> 00:25:01,260 C'est veloċità riffriskar tagħhom. 414 00:25:01,260 --> 00:25:04,650 Li kemm ta 'spiss jġedded l-istampa fuq l-iskrin. 415 00:25:04,650 --> 00:25:08,960 Allura mira tagħna se tkun 60 frejm kull sekonda għas logħob tagħna. 416 00:25:08,960 --> 00:25:11,770 417 00:25:11,770 --> 00:25:13,710 >> Mela ejja ara dak fil-kodiċi. 418 00:25:13,710 --> 00:25:19,064 Allura għal kull qafas, aħna qed l-ewwel ser jiċċara l-tieqa. 419 00:25:19,064 --> 00:25:20,230 Dan huwa l-mudell ġenerali. 420 00:25:20,230 --> 00:25:22,450 Inti dejjem ċar l- tieqa kull qafas, u mbagħad 421 00:25:22,450 --> 00:25:25,210 tagħmel kollha ta 'tfassil tiegħek operazzjonijiet, u mbagħad fl-aħħar, 422 00:25:25,210 --> 00:25:29,610 do RenderPresent biex juru kollox fil-qafas. 423 00:25:29,610 --> 00:25:33,910 U allura int ser jkollhom jistennew fl-aħħar 424 00:25:33,910 --> 00:25:36,340 li wieħed jistenna sakemm il-li jmiss qafas għandu jibda. 425 00:25:36,340 --> 00:25:38,650 >> Hekk jekk I kienet tagħmel ħafna ta ' komputazzjoni kumplessi hawn 426 00:25:38,650 --> 00:25:43,100 li ħadet aktar minn 16 millisekondi, ikun impossibbli għalija 427 00:25:43,100 --> 00:25:46,890 tikseb dik ir-rata qafas ta '60 li Jien ridt, għaliex kull qafas huwa 428 00:25:46,890 --> 00:25:48,750 jieħdu wisq żmien biex tiġi kkalkulata. 429 00:25:48,750 --> 00:25:52,340 Barra minn hekk, aħna qed verament tagħmel tip ta 'ammont negliġibbli ta' xogħol 430 00:25:52,340 --> 00:25:54,820 hawn, għaliex hemm biss ħaġa waħda aħna qed tpinġija. 431 00:25:54,820 --> 00:25:59,390 So I biss stenna 1/60 ta ' tieni, li huwa t-tul 432 00:25:59,390 --> 00:26:01,520 ta 'qafas bejn frames. 433 00:26:01,520 --> 00:26:05,610 Hekk jien tip ta 'feint li jagħmlu xogħol kollu tiegħi jieħu ż-żmien żero. 434 00:26:05,610 --> 00:26:09,050 Iżda fil-logħba reali, youd għandek naqqas 435 00:26:09,050 --> 00:26:13,760 l-ammont ta 'ħin li ħadet biex tagħmel din il-ħidma minn żmien bqija tiegħek. 436 00:26:13,760 --> 00:26:16,970 >> Allura xorta, dak am I fil-fatt jagħmlu f'dan loop? 437 00:26:16,970 --> 00:26:19,070 I ċar l-tieqa. 438 00:26:19,070 --> 00:26:27,470 I stabbiliti l-dest.y, li hija int li pożizzjoni tiegħi y attwali mitfugħa fi int. 439 00:26:27,470 --> 00:26:32,070 Issa, nixtieq float riżoluzzjoni għall-pożizzjoni y tiegħi fil-logħba tiegħi, 440 00:26:32,070 --> 00:26:34,150 iżda mbagħad fil-fatt tiġbed fuq l-iskrin, 441 00:26:34,150 --> 00:26:39,070 jeħtieġ ints, għaliex dan huwa f'unitajiet ta ' pixels, b'tali mod li dak l-voti huwa għall. 442 00:26:39,070 --> 00:26:41,745 Jien ser tiġbed l-immaġini. 443 00:26:41,745 --> 00:26:45,180 Allura dan huwa l-rettangolu sors. 444 00:26:45,180 --> 00:26:47,060 U dan huwa l-rettangolu destinazzjoni. 445 00:26:47,060 --> 00:26:50,310 So I għadda null għal ir-rettangolu sors 446 00:26:50,310 --> 00:26:53,426 ngħid nixtieq li tiġbed nisġa kollu tiegħi. 447 00:26:53,426 --> 00:26:55,300 Imma jekk kellek ħafna ta ' textures fil-logħba tiegħek 448 00:26:55,300 --> 00:26:59,120 u dawn qed kollha fil-mappa waħda nisġa big li ġie mgħobbi fuq SDL bħala wieħed biss 449 00:26:59,120 --> 00:27:02,850 tessut, inti tista jużaw rettangolu sors 450 00:27:02,850 --> 00:27:06,750 li pick wieħed mill-nisġa iżgħar, wieħed mill-sprites iżgħar, 451 00:27:06,750 --> 00:27:09,450 barra minn dak mappa nisġa kbar. 452 00:27:09,450 --> 00:27:14,740 >> Għalhekk għal darb'oħra, jien tgħaddi tirrendi tiegħi, my nisġa, u issa d-destinazzjoni. 453 00:27:14,740 --> 00:27:18,320 Dan se jkun fejn fil- tieqa li għaddej biex jitfasslu. 454 00:27:18,320 --> 00:27:21,390 U mbagħad, għaliex jien tanima xi ħaġa, I bżonn moviment, 455 00:27:21,390 --> 00:27:25,150 Jien ser jiġu aġġornament tal- pożizzjoni Sprite fuq kull frame. 456 00:27:25,150 --> 00:27:30,190 So I jkollhom din imsejħa iscroll kostanti veloċità f'unitajiet ta 'pixels kull sekonda. 457 00:27:30,190 --> 00:27:34,320 Issa, kull darba li nagħmlu moviment, Il-qafas huwa biss 1/60 ta 'sekonda. 458 00:27:34,320 --> 00:27:36,740 Hekk jien ser jaqsmu dan b'60. 459 00:27:36,740 --> 00:27:42,350 U mbagħad, ejja ara, jien jitnaqqas dak mill-pożizzjoni y. 460 00:27:42,350 --> 00:27:44,470 Why am I jitnaqqas? 461 00:27:44,470 --> 00:27:46,169 Aħna ser jiksbu għal dak fit-tieni. 462 00:27:46,169 --> 00:27:48,460 Mela allura I tnaddaf riżorsi tiegħi u l-programm fuq. 463 00:27:48,460 --> 00:27:49,830 >> Mela ejja jagħmlu dan. 464 00:27:49,830 --> 00:27:52,450 465 00:27:52,450 --> 00:28:03,570 Mela ejja jmorru fil-għamla SRCS = hello4 animation.c, id-dritt? 466 00:28:03,570 --> 00:28:05,720 Game. 467 00:28:05,720 --> 00:28:06,770 Hemm inti tmur. 468 00:28:06,770 --> 00:28:12,690 So I jkollhom dan scrolling l- tieqa, li huwa pjuttost pulita. 469 00:28:12,690 --> 00:28:17,110 Iżda li jkollhom fuq, I kien jitnaqqas mill-pożizzjoni y kull darba. 470 00:28:17,110 --> 00:28:18,910 X'qed jiġri hemmhekk? 471 00:28:18,910 --> 00:28:24,010 Ukoll, jirriżulta li fil SDL, u fil-fatt, f'ħafna kompjuter grafika, 472 00:28:24,010 --> 00:28:28,890 l-oriġini għall-sistema tal-koordinati huwa l-aqwa xellug tat-tieqa. 473 00:28:28,890 --> 00:28:34,960 >> Allura l-direzzjoni pożittiva x tmur madwar tieqa tiegħek lejn il-lemin. 474 00:28:34,960 --> 00:28:38,110 U d-direzzjoni y pożittiva attwalment jinżel. 475 00:28:38,110 --> 00:28:40,470 Għalhekk għal darb'oħra, fil-oriġini tal fuq ix-xellug ta 'fuq tat-tieqa tiegħek, 476 00:28:40,470 --> 00:28:46,190 direzzjoni y pożittiva huwa jistabbilixxi, u pożittiv x hija lejn il-lemin. 477 00:28:46,190 --> 00:28:48,770 Allura meta I inaqqas mit il-pożizzjoni y, li 478 00:28:48,770 --> 00:28:52,640 se jagħmilha jmorru fuq il-negattiv direzzjoni y, li hija l-tieqa. 479 00:28:52,640 --> 00:28:55,500 Allura dak hu li għaddej hemmhekk. 480 00:28:55,500 --> 00:28:56,510 Kessaħ. 481 00:28:56,510 --> 00:28:59,240 >> Ejja nħarsu lejn il-fajl jmiss. 482 00:28:59,240 --> 00:29:05,700 Hawn hija l-parti tal- juru fejn aħna finalment 483 00:29:05,700 --> 00:29:08,920 nikseb li X fil-kantuniera tat-tieqa li suppost li qrib it-tieqa 484 00:29:08,920 --> 00:29:10,660 tahdem. 485 00:29:10,660 --> 00:29:12,800 Allura x'inhu għaddej? 486 00:29:12,800 --> 00:29:17,520 Aħna initialize SDL, joħolqu l-tieqa, joħolqu l-renderer, tagħbija l-immaġini, 487 00:29:17,520 --> 00:29:19,770 joħolqu l-istruttura bħal konna rajna qabel. 488 00:29:19,770 --> 00:29:26,850 Għandna l-istess rettangolu destinazzjoni bħal qabel,-istess sejħa għall-mistoqsija nisġa. 489 00:29:26,850 --> 00:29:29,780 Iżda dan iż-żmien, aħna qed allura ser jaqsam il-wisa 490 00:29:29,780 --> 00:29:33,110 u l-għoli ta 'destinazzjoni tagħna b'4. 491 00:29:33,110 --> 00:29:36,430 Dan biss l-effett ta ' skalar immaġini tagħna stabbiliti meta 492 00:29:36,430 --> 00:29:39,884 aħna wiri fit-tieqa minn erba '. 493 00:29:39,884 --> 00:29:40,800 Allura dak pjuttost pulita. 494 00:29:40,800 --> 00:29:42,770 Nistgħu biss iskala biss bħal dik. 495 00:29:42,770 --> 00:29:45,970 Aħna ser tibda l-Sprite fiċ-ċentru tal-iskrin. 496 00:29:45,970 --> 00:29:49,410 U issa għandna x u veloċità y u dawn qed kemm ser tibda fuq iż-żero. 497 00:29:49,410 --> 00:29:53,740 498 00:29:53,740 --> 00:29:55,880 >> Dan huwa l-fajl ħażin. 499 00:29:55,880 --> 00:29:56,380 Jiddispjaċini. 500 00:29:56,380 --> 00:29:57,960 Allura li kollox veru. 501 00:29:57,960 --> 00:30:00,170 Li kollox għadu f'dan il-fajl. 502 00:30:00,170 --> 00:30:03,210 Għandna l-iddividi 4 u kollox. 503 00:30:03,210 --> 00:30:07,830 Allura hawnhekk għandna tagħna xuy pożizzjoni għaċ-ċentru tat-tieqa. 504 00:30:07,830 --> 00:30:12,480 U aħna jagħtih veloċità inizjali ta 'din il-veloċità kostanti, li 505 00:30:12,480 --> 00:30:15,180 Nemmen hija 300 pixels kull sekonda. 506 00:30:15,180 --> 00:30:19,850 Issa, aħna għandna dan int tista 'biss kif ukoll tkun Boolean imsejjaħ qrib mitluba. 507 00:30:19,850 --> 00:30:23,970 U minflok tagħmel xi loop infinita fuq timer hawn, 508 00:30:23,970 --> 00:30:29,180 aħna qed tmur biex jiġu janimaw bħala Sakemm qrib ma jiġux mitluba. 509 00:30:29,180 --> 00:30:30,960 >> Allura kif aħna proċess avvenimenti? 510 00:30:30,960 --> 00:30:35,600 Ukoll, SDL kjuwijiet up avvenimenti fi kju litterali wara l-kwinti. 511 00:30:35,600 --> 00:30:38,860 U mbagħad kull qafas, nistgħu dequeue avvenimenti 512 00:30:38,860 --> 00:30:43,900 minn dak kju użu dan SDL_PullEvent sejħa. 513 00:30:43,900 --> 00:30:46,730 U għal darb'oħra, definittivament tmur taqra dwar dan fid-dokumentazzjoni. 514 00:30:46,730 --> 00:30:50,450 Hemm ħafna aktar dettall u ħafna funzjonijiet aktar inti tista 'tuża ma' dan. 515 00:30:50,450 --> 00:30:54,750 Aħna tgħaddiha-indirizz ta 'dan il-ħaġa, SDL_Event 516 00:30:54,750 --> 00:30:56,990 li għandna hawn fuq il-munzell. 517 00:30:56,990 --> 00:30:58,840 >> Issa, dak li huwa SDL_event? 518 00:30:58,840 --> 00:31:02,356 Minħabba SDL, jekk inħarsu fil l documentation-- ejja 519 00:31:02,356 --> 00:31:07,580 tara, API skond il-kategorija, input avvenimenti, tqandil avveniment, 520 00:31:07,580 --> 00:31:15,150 nistgħu nħarsu lejn in-numru avvenimenti ta 'diversi hawn 521 00:31:15,150 --> 00:31:18,600 u nistgħu naraw hemm ton kollu tagħhom. 522 00:31:18,600 --> 00:31:22,150 Allura dak li huwa dan ħaġa SDL_Event? 523 00:31:22,150 --> 00:31:28,190 524 00:31:28,190 --> 00:31:31,107 SDL_Event hija unjoni. 525 00:31:31,107 --> 00:31:31,940 Ara naqra, x'hemm unjoni? 526 00:31:31,940 --> 00:31:33,910 Inti stajt probabbilment qatt ma semgħu li qabel. 527 00:31:33,910 --> 00:31:35,610 U li OK. 528 00:31:35,610 --> 00:31:39,420 >> Għaqda huwa tip simili a Struct, ħlief Istituzzjonjijiet 529 00:31:39,420 --> 00:31:41,960 għandu spazju għal kulħadd ta ' oqsma u l-memorja, 530 00:31:41,960 --> 00:31:45,060 billi unjoni għandha biss biżżejjed spazju biex jitwaħħal l-akbar 531 00:31:45,060 --> 00:31:49,660 wieħed mill-oqsma ta, li jfisser li jista 'biss jaħżen wieħed mill-oqsma ta 532 00:31:49,660 --> 00:31:52,830 fi żmien, liema tip ta ' jagħmel sens għal avvenimenti, right? 533 00:31:52,830 --> 00:31:55,810 Jista 'jkollna tastiera avveniment jew avveniment tieqa, 534 00:31:55,810 --> 00:31:59,750 iżda avveniment wieħed ma jista 'jkun kemm avveniment keyboard u avveniment tieqa, 535 00:31:59,750 --> 00:32:05,450 għalhekk d jkun iblah li jkollhom spazju għall kemm ta 'dawk ġewwa avveniment unjoni tagħna. 536 00:32:05,450 --> 00:32:07,770 Mela jekk int riedu joħolqu unjoni tiegħek stess, 537 00:32:07,770 --> 00:32:10,020 jidher eżattament l-istess il-ħolqien ta 'Struct, 538 00:32:10,020 --> 00:32:14,140 ħlief li aħna nużaw l-keyword unjoni minflok il-keyword Istituzzjonjijiet. 539 00:32:14,140 --> 00:32:17,490 U ftakar, għal kulħadd ta 'l- affarijiet ġewwa unjoni tiegħek, 540 00:32:17,490 --> 00:32:22,020 il-varjabbli attwali li huwa l-unjoni jista 'biss jkollhom waħda minn dawk il-valuri 541 00:32:22,020 --> 00:32:24,780 kull darba. 542 00:32:24,780 --> 00:32:29,940 >> Allura kif nistgħu tgħid liema tip ta 'avveniment aħna biss popped off ta 'dan kju? 543 00:32:29,940 --> 00:32:33,370 Well, nistgħu test għall event.type. 544 00:32:33,370 --> 00:32:35,792 U jekk dan huwa ugwali li SDL_Quit, nafu 545 00:32:35,792 --> 00:32:37,500 huwa l-każ li kien iġġenerat meta aħna 546 00:32:37,500 --> 00:32:39,510 hit li X fil-kantuniera tat-tieqa. 547 00:32:39,510 --> 00:32:44,270 U nistgħu stabbilit mitluba mill-qrib ugwali 1. 548 00:32:44,270 --> 00:32:47,230 Il-bqija huwa biss ftit animazzjoni li inti stajt tidher qabel. 549 00:32:47,230 --> 00:32:52,802 Mela ejja imorru quddiem u jagħmlu dan u tara kif taħdem tajjeb. 550 00:32:52,802 --> 00:32:55,135 Hekk jien ser tip għamla u imbagħad SRCS = hello5_events.c. 551 00:32:55,135 --> 00:33:03,760 552 00:33:03,760 --> 00:33:04,770 Hemm immorru. 553 00:33:04,770 --> 00:33:05,780 Logħob. 554 00:33:05,780 --> 00:33:08,920 >> Issa, nistgħu naraw li kien tabilħaqq jitnaqqsu mill erbgħa. 555 00:33:08,920 --> 00:33:10,360 U issa huwa bouncing madwar. 556 00:33:10,360 --> 00:33:14,630 Għandi xi skoperta kolliżjoni għaddejjin mal-ġnub tat-tieqa 557 00:33:14,630 --> 00:33:16,840 li nistgħu tagħti ħarsa lejn. 558 00:33:16,840 --> 00:33:21,190 U x'jiġri meta mmur biex tagħlaq dan? 559 00:33:21,190 --> 00:33:22,120 Li jagħlaq. 560 00:33:22,120 --> 00:33:22,740 Fantastic. 561 00:33:22,740 --> 00:33:24,290 Irċevejna dak l-avveniment. 562 00:33:24,290 --> 00:33:26,630 U aħna ttrattat. 563 00:33:26,630 --> 00:33:30,730 >> Mela ejja nħarsu lura lejn il-kodiċi. 564 00:33:30,730 --> 00:33:33,020 Allura kif ma I ġġibu bouncing madwar bħal dik? 565 00:33:33,020 --> 00:33:37,200 Ftakar I sett kemm xu y inizjalment għall-veloċitajiet. 566 00:33:37,200 --> 00:33:39,260 U l-veloċità hija pożittiva kostanti, b'tali mod li 567 00:33:39,260 --> 00:33:42,680 se ġġibu bdew jinżel 'l isfel u lejn il-lemin. 568 00:33:42,680 --> 00:33:45,680 569 00:33:45,680 --> 00:33:50,310 >> Issa, kull qafas, minbarra l-immaniġġjar kwalunkwe avvenimenti li setgħu ġraw, 570 00:33:50,310 --> 00:33:57,520 Jien ser jiskopru jekk ikunx Sprite tiegħi qed tipprova tmur barra mit-tieqa. 571 00:33:57,520 --> 00:34:03,610 Allura nistgħu nagħmlu dan billi biss verifika x_pos ma 0, y_pos 0, u mbagħad 572 00:34:03,610 --> 00:34:07,370 wkoll x_pos u y_pos ma wisa tieqa u għoli tieqa. 573 00:34:07,370 --> 00:34:11,010 Avviż Stajt mnaqqsa l-wisa 'tal-Sprite. 574 00:34:11,010 --> 00:34:14,090 U dan huwa minħabba li jekk I ma naqqas il-wisa 'tal-Sprite, 575 00:34:14,090 --> 00:34:17,760 ikun biss tivverifika li l-oriġini tal-Sprite 576 00:34:17,760 --> 00:34:19,690 ma jmorru barra l-tieqa. 577 00:34:19,690 --> 00:34:21,480 Iżda rridu l kollu wisa 'tal-Sprite 578 00:34:21,480 --> 00:34:24,030 li dejjem tkun ġewwa l-tieqa u l-għoli kollu tal-Sprite 579 00:34:24,030 --> 00:34:25,321 li dejjem tkun ġewwa l-tieqa. 580 00:34:25,321 --> 00:34:27,429 Allura dak hu li l-tnaqqis huwa għall. 581 00:34:27,429 --> 00:34:30,080 A lott ta 'ġeometrija hawn tista jkun utli li jindikaw it out 582 00:34:30,080 --> 00:34:33,929 fuq karta bil-tikkoordina sistema biex tara dak li qed jiġri. 583 00:34:33,929 --> 00:34:38,090 >> Mela jekk jien jikkonfliġġu, I biss sempliċiment reset-pożizzjoni 584 00:34:38,090 --> 00:34:41,400 b'tali mod li mhux se barra mill-iskrin. 585 00:34:41,400 --> 00:34:47,179 U jien ser, jekk bounces fuq waħda mill-ġnub, 586 00:34:47,179 --> 00:34:51,469 Jien ser jiċħdu l- x veloċità sabiex 587 00:34:51,469 --> 00:34:53,210 jibda bouncing fid-direzzjoni oħra. 588 00:34:53,210 --> 00:34:56,210 U bl-istess mod, jekk hits il-quċċata jew il-qiegħ, 589 00:34:56,210 --> 00:34:59,820 Jien ser jistabbilixxu l-veloċità y daqs il-veloċità y negattiv, 590 00:34:59,820 --> 00:35:01,690 hekk li se bounce back. 591 00:35:01,690 --> 00:35:03,860 Allura li jinsab biss kif aħna qbilna li hawn. 592 00:35:03,860 --> 00:35:07,560 >> U l-pożizzjonijiet aġġornament bħad konna rajna qabel, 593 00:35:07,560 --> 00:35:12,510 iddividi 60, għaliex aħna qed biss immaniġġjar 1/60 ta 'sekonda. 594 00:35:12,510 --> 00:35:15,750 U mbagħad tirrendi, eżattament l-istess bħal qabel. 595 00:35:15,750 --> 00:35:19,810 U hekk dan huwa dak kollu li kien għaddej dan il-fajl. 596 00:35:19,810 --> 00:35:22,490 Allura li kif nagħmlu avvenimenti. 597 00:35:22,490 --> 00:35:29,260 Il-ħaġa prinċipali għal take away hawn hija din il-funzjoni SDL_PullEvent. 598 00:35:29,260 --> 00:35:33,020 U inti għandek definittivament taqra l- dokumentazzjoni aktar dwar SDL_Event 599 00:35:33,020 --> 00:35:38,630 l-unjoni, għaliex dan it-tip tad-data hija ħafna, importanti ħafna, għaliex nużawha 600 00:35:38,630 --> 00:35:40,690 għal kull xorta ta 'avvenimenti. 601 00:35:40,690 --> 00:35:46,539 >> Per eżempju, nużawha għall keyboard avvenimenti, li huwa dak li dan il-fajl huwa għall. 602 00:35:46,539 --> 00:35:47,330 Allura dak li għandna? 603 00:35:47,330 --> 00:35:50,180 Għandna l-istess ħaġa bħal qabel, initialize SDL, toħloq tieqa, 604 00:35:50,180 --> 00:35:55,260 joħolqu renderer, tagħbija l-immaġini fil-memorja, joħolqu l-istruttura. 605 00:35:55,260 --> 00:36:00,530 Għal darb'oħra, aħna qed tmur biex jkollhom dan ir-rettangolu dest, 606 00:36:00,530 --> 00:36:04,890 aħna qed tmur għall-iskala l-immaġni minn erba ', jagħmilha daqsxejn iżgħar. 607 00:36:04,890 --> 00:36:08,000 Issa, aħna ser tibda l- Sprite fiċ-ċentru tal-iskrin. 608 00:36:08,000 --> 00:36:12,090 Iżda dan iż-żmien, aħna qed tmur biex tiffissa l- x inizjali u veloċitajiet y għal żero, 609 00:36:12,090 --> 00:36:15,140 minħabba li l-keyboard huwa ser tikkontrolla dawk. 610 00:36:15,140 --> 00:36:18,900 U barra minn hekk, aħna qed tmur biex iżżomm kont ta 'dawn il-varjabbli 611 00:36:18,900 --> 00:36:20,450 up, down, xellug, u lemin. 612 00:36:20,450 --> 00:36:23,090 U li għaddej biex iżommu rekord ta 'jekk konna 613 00:36:23,090 --> 00:36:27,370 ippressat-buttuni tastiera li jikkorrispondu għal up, down, xellug, 614 00:36:27,370 --> 00:36:28,460 u lemin. 615 00:36:28,460 --> 00:36:32,440 >> Issa, dan huwa tip ta 'fancy għaliex nistgħu nużaw W, A, S, 616 00:36:32,440 --> 00:36:35,480 D hawn, jew il-keys vleġġa attwali. 617 00:36:35,480 --> 00:36:38,590 Ser naraw li fi ftit tieni. 618 00:36:38,590 --> 00:36:41,140 Allura aħna qed tmur biex jipproċessaw F'każ bħad qabel. 619 00:36:41,140 --> 00:36:42,530 Aħna iġbed l-avveniment. 620 00:36:42,530 --> 00:36:45,840 Imma issa aħna qed tmur biex jaqilbu fuq it-tip avveniment. 621 00:36:45,840 --> 00:36:47,710 Jekk huwa SDL_Quit, aħna qed ser tiffissa qrib 622 00:36:47,710 --> 00:36:49,990 mitlub għal wieħed, bħad qabel. 623 00:36:49,990 --> 00:36:52,315 Li mankijiet l-x fid l-kantuniera tat-tieqa, 624 00:36:52,315 --> 00:36:55,050 sabiex tieqa tagħna attwalment jagħlaq. 625 00:36:55,050 --> 00:37:00,110 >> Inkella, jekk irridu jiksbu ċavetta SDL isfel avveniment, li jfisser li għandna ippressat ewlenin, 626 00:37:00,110 --> 00:37:04,470 allura dak li aħna qed tmur biex tagħmel hu li aħna qed se jaqilbu fuq din il-ħaġa hawn, 627 00:37:04,470 --> 00:37:11,370 li means-- hekk event.key ifisser jittrattaw avveniment union tagħna, 628 00:37:11,370 --> 00:37:15,490 mur u jiksbu l-muftieħ istruttura avveniment fiha. 629 00:37:15,490 --> 00:37:18,810 Għalhekk jirriżulta li dan unjoni hija struttura avveniment ewlieni. 630 00:37:18,810 --> 00:37:22,820 U mbagħad mur l-ewlenin istruttura avveniment qasam tagħha 631 00:37:22,820 --> 00:37:26,140 imsejħa keysym u mbagħad scancode. 632 00:37:26,140 --> 00:37:29,480 U għal darb'oħra, definittivament taqra id-dokumentazzjoni dwar dan. 633 00:37:29,480 --> 00:37:31,220 Inputs Keyword pjuttost interessanti. 634 00:37:31,220 --> 00:37:34,020 Tista 'tikseb kodiċijiet scan jew kodiċi ewlenin. 635 00:37:34,020 --> 00:37:38,590 U huwa ftit sottili, iżda id-dokumentazzjoni hija pjuttost tajba. 636 00:37:38,590 --> 00:37:43,380 >> Mela jekk naraw il-kodiċi scan għall istampa ewlenin tagħna qed W jew up, 637 00:37:43,380 --> 00:37:45,450 aħna qed tmur biex iwaqqfu ugwali għal 1. 638 00:37:45,450 --> 00:37:47,240 U allura aħna break out ta 'dak swiċċ. 639 00:37:47,240 --> 00:37:52,980 Jekk huwa A jew xellug, waqqafna xellug għal 1, et cetera, eċċetera, għal isfel u lemin. 640 00:37:52,980 --> 00:37:57,080 Issa, f'dan swiċċ barra, jekk naraw ewlieni up avveniment, 641 00:37:57,080 --> 00:38:00,730 dan ifisser konna rilaxxati ewlieni u aħna qed m'għadhomx tippressa. 642 00:38:00,730 --> 00:38:05,380 Hekk jien se ngħid up ikun egwali għal 0, xellug ugwali 0, down ugwali 0, id-dritt 643 00:38:05,380 --> 00:38:08,260 ikun egwali għal 0, eċċetera. 644 00:38:08,260 --> 00:38:12,070 >> U avviż għandna f'kull wieħed minn dawn żewġ każijiet tpoġġi dritt ħdejn xulxin 645 00:38:12,070 --> 00:38:14,490 bl-ebda kodiċi separat għall-ewwel każ, li 646 00:38:14,490 --> 00:38:18,180 ifisser li jekk huwa S jew fl-dritt hawn, 647 00:38:18,180 --> 00:38:20,520 li għaddej biex tesegwixxi dan il-kodiċi. 648 00:38:20,520 --> 00:38:22,090 Allura dak pjuttost handy. 649 00:38:22,090 --> 00:38:24,830 Dan jipprevjeni lilna ma jkollhom jagħmlu aktar kondizzjonijiet u IFs u affarijiet 650 00:38:24,830 --> 00:38:26,980 bħal dik. 651 00:38:26,980 --> 00:38:29,420 >> Allura aħna qed tmur biex ddeterminata l-veloċità. 652 00:38:29,420 --> 00:38:31,020 Waqqafna l-veloċità għal 0. 653 00:38:31,020 --> 00:38:33,910 Imbagħad jekk up hija ppressata u mhux stabbiliti, allura aħna 654 00:38:33,910 --> 00:38:37,450 tistabbilixxi l-veloċità y għall-veloċità negattiv. 655 00:38:37,450 --> 00:38:42,930 Ftakar negattiv, minħabba li l- direzzjoni y negattiv huwa up. 656 00:38:42,930 --> 00:38:45,540 U d-direzzjoni y pożittiva huwa jistabbilixxi. 657 00:38:45,540 --> 00:38:47,510 Jekk l hija ppressata u mhux up, allura aħna qed 658 00:38:47,510 --> 00:38:53,860 ser tiffissa lilha għall-veloċità pożittiva, li jfisser jinżel 'l isfel l-iskrin. 659 00:38:53,860 --> 00:38:55,460 Istess ħaġa ma xellug u lemin. 660 00:38:55,460 --> 00:38:58,200 >> U allura aħna qed tmur biex taġġorna il-pożizzjonijiet bħad qabel. 661 00:38:58,200 --> 00:39:00,740 Aħna qed tmur biex tagħmel ħabta skoperta ma limiti, 662 00:39:00,740 --> 00:39:04,290 iżda aħna mhux qed tmur għal reset l- veloċità, minħabba li l-veloċità huwa biss 663 00:39:04,290 --> 00:39:06,780 ikkontrollata mill-keyboard. 664 00:39:06,780 --> 00:39:11,230 Imma aħna ser reset- pożizzjonijiet li jżommha fis-tieqa. 665 00:39:11,230 --> 00:39:14,400 U aħna qed tmur biex tiffissa l- pożizzjonijiet fil-Struct 666 00:39:14,400 --> 00:39:17,400 u mbagħad jagħmlu l- tirrendi Jittieħed minn qabel l. 667 00:39:17,400 --> 00:39:20,750 Mela ejja ara dak li tagħmel. 668 00:39:20,750 --> 00:39:25,460 Sabiex tagħmel SRCS-- ejja ara, dan huwa hello6_keyboard.c. 669 00:39:25,460 --> 00:39:38,140 670 00:39:38,140 --> 00:39:38,820 >> Oh, no. 671 00:39:38,820 --> 00:39:40,150 Allura aħna ltqajna xi twissijiet hawn. 672 00:39:40,150 --> 00:39:43,840 U li sempliċiment tgħid aħna ma jikkontrolla għal kull tip wieħed possibbli 673 00:39:43,840 --> 00:39:45,610 ta 'avveniment. 674 00:39:45,610 --> 00:39:49,470 Dak OK, għaliex hemm 236 minnhom jew hekk. 675 00:39:49,470 --> 00:39:51,760 Hekk jien ser jinjora dawn it-twissijiet. 676 00:39:51,760 --> 00:39:53,530 Huwa għadu kkompilata multa. 677 00:39:53,530 --> 00:39:56,100 Hekk jien ser jilagħbu l-logħba. 678 00:39:56,100 --> 00:39:57,590 Mhuwiex jiċċaqalqu. 679 00:39:57,590 --> 00:40:04,150 Imma issa, meta I maxx fuq it-tastiera tiegħi, I tista 'tagħmel xi moviment WASD hawn, 680 00:40:04,150 --> 00:40:06,870 I użu arrow ċwievet tiegħi ukoll. 681 00:40:06,870 --> 00:40:10,070 U avviż, anki jekk jien ippressar dritt dritt issa, 682 00:40:10,070 --> 00:40:13,804 mhuwiex ser barra mit-tieqa, minħabba I reset fuq kull frame. 683 00:40:13,804 --> 00:40:14,720 Allura dak pjuttost pulita. 684 00:40:14,720 --> 00:40:19,420 Tista 'timmaġina li jiċċaqalqu madwar Mario ma xi ċwievet vleġġa jew xi ħaġa bħal dik. 685 00:40:19,420 --> 00:40:22,880 U iva, il-X jaħdem. 686 00:40:22,880 --> 00:40:26,900 >> Fajl sabiex finali aħna qed tmur li tħares lejn, hellow7_mouse. 687 00:40:26,900 --> 00:40:29,600 Dan huwa dwar jkollna input ġurdien. 688 00:40:29,600 --> 00:40:34,790 Allura f'dan il-wieħed, aħna jimportaw il-header matematika, 689 00:40:34,790 --> 00:40:38,100 għaliex aħna qed tmur biex ikollhom xi ftit ta 'matematika hawn. 690 00:40:38,100 --> 00:40:45,260 Istess qodma, istess qodma Jittieħed, id-destinazzjoni, istess qodma, jidher li qabel. 691 00:40:45,260 --> 00:40:46,910 Ukoll, dan huwa interessanti. 692 00:40:46,910 --> 00:40:51,730 Allura aħna qed lura biss verifika għall-SDL nieqaf avveniment. 693 00:40:51,730 --> 00:40:52,460 Għaliex huwa li? 694 00:40:52,460 --> 00:40:55,110 Allura inti tista 'tikseb input mouse minn avvenimenti. 695 00:40:55,110 --> 00:40:57,670 Simili meta l-maws mċaqalqa, ikollok avveniment għal dan. 696 00:40:57,670 --> 00:41:00,520 Meta mouse button hija ppressata, inti tista 'tikseb avveniment għal dan. 697 00:41:00,520 --> 00:41:05,760 >> Iżda hemm ieħor, ftit aktar sempliċi forsi, API għall jkollna input ġurdien. 698 00:41:05,760 --> 00:41:09,500 U li sempliċiment istat maws get SDL. 699 00:41:09,500 --> 00:41:14,370 So I jkollhom int għal xu y għall-pożizzjoni cursor. 700 00:41:14,370 --> 00:41:18,910 I tgħaddih lill SDL_GetMouseState, li tistabbilixxi dawn. 701 00:41:18,910 --> 00:41:22,200 U dan huwa fil-pożizzjoni jikkoordinaw sistema tat-tieqa. 702 00:41:22,200 --> 00:41:25,520 Allura jekk il-massa hija fil-quċċata xellug tat-tieqa, li kieku 0, 0. 703 00:41:25,520 --> 00:41:28,040 704 00:41:28,040 --> 00:41:33,380 >> Issa, dak li jien ser tagħmel hu li jien ser li tagħmel ftit ta 'matematika vector. 705 00:41:33,380 --> 00:41:36,910 I bet int ħsibt inti ma tkunx tara li fil CS50, iżda hawnhekk huwa. 706 00:41:36,910 --> 00:41:40,720 Jien ser jagħmlu xi vector matematika li jiksbu l-vettur 707 00:41:40,720 --> 00:41:43,840 mill-immaġni li l-cursor. 708 00:41:43,840 --> 00:41:53,280 U hekk għaliex għandi dan it-tnaqqis hawn? 709 00:41:53,280 --> 00:42:01,350 Ukoll, jekk I biss użati dest .-- hekk I bżonn biex tittraduċi l-maws x 710 00:42:01,350 --> 00:42:05,166 u y bin-nofs il-wisa u l-għoli tad-dehra, 711 00:42:05,166 --> 00:42:08,040 minħabba I jridu li l-ċentru tal- immaġni li jkunu għaddejjin lejn l-maws, 712 00:42:08,040 --> 00:42:10,160 mhux l-oriġini tal-immaġini. 713 00:42:10,160 --> 00:42:15,650 >> Allura dak biss biex tiżgura li nkun qiegħed jitkellem dwar il-ċentru tal-immaġni hawn. 714 00:42:15,650 --> 00:42:19,510 Imbagħad irridu jiksbu delta xuy, li hija d-differenza mill-mira 715 00:42:19,510 --> 00:42:23,430 għall-pożizzjoni attwali ta 'l-immaġini. 716 00:42:23,430 --> 00:42:25,690 U allura nistgħu nibdew il- distanza hawn, li 717 00:42:25,690 --> 00:42:29,140 se tkun Pythagorean teorema, għerq ikkwadrat ta 'x 718 00:42:29,140 --> 00:42:32,720 darbiet x plus żminijiet y y. 719 00:42:32,720 --> 00:42:38,400 >> Issa biex jipprevjenu jitter, u I tista 'turi x'għandek dan ma jekk jien ma tagħmel dan, 720 00:42:38,400 --> 00:42:45,830 jekk id-distanza bejn il-cursor u iċ-ċentru immaġini huwa inqas minn ħamsa, 721 00:42:45,830 --> 00:42:48,730 Jien biss mhux ser jiċċaqalqu l-immaġini. 722 00:42:48,730 --> 00:42:52,900 Inkella, aħna waqqafna l-veloċità. 723 00:42:52,900 --> 00:42:55,960 U aħna waqqafna hekk li l- veloċità dejjem se jkun kostanti. 724 00:42:55,960 --> 00:42:58,770 U r-riżultat nett ta 'kull dan matematika huwa li l-immaġini 725 00:42:58,770 --> 00:43:01,660 se timxi lejn il-cursor. 726 00:43:01,660 --> 00:43:08,470 >> Issa, jirriżulta li SDL_GetMouseState, 727 00:43:08,470 --> 00:43:14,490 minbarra l-iffissar tal- x u argumenti y hawn, 728 00:43:14,490 --> 00:43:21,340 dan jirritorna wkoll int li jikkorrispondi għall-istat tal-buttuni maws. 729 00:43:21,340 --> 00:43:24,600 Allura ma nistgħux taqra dan direttament, iżda nistgħu 730 00:43:24,600 --> 00:43:29,090 jużaw dawn macros, wieħed operatur bitwise, mhux li scary, 731 00:43:29,090 --> 00:43:30,650 biss bitwise u. 732 00:43:30,650 --> 00:43:38,320 Allura aħna ngħidu buttuni, li hija r-riżultat tal SDL_GetMouseState tagħna, jekk dan 733 00:43:38,320 --> 00:43:43,990 u bitwise u, dan makro hawn, SDL_BUTTON_LEFT. 734 00:43:43,990 --> 00:43:47,680 >> Allura dan se sempliċiment isolvu għall-Bitmap li jikkorrispondi 735 00:43:47,680 --> 00:43:51,090 li mouse button xellug jiġu ppressati. 736 00:43:51,090 --> 00:43:55,470 U hekk jekk l-bitwise u sseħħ u huwa 737 00:43:55,470 --> 00:43:59,340 mhux żero, li jfisser buttuna xellug kien ippressat, 738 00:43:59,340 --> 00:44:04,320 allura aħna qed attwalment għaddejjin biex tinnega kemm il-x u l-veloċitajiet y, 739 00:44:04,320 --> 00:44:06,700 li se tagħmel l-runaway immaġini. 740 00:44:06,700 --> 00:44:07,980 Pożizzjonijiet Aġġornament. 741 00:44:07,980 --> 00:44:10,920 Rilevamenti Kolliżjonijiet, tidher li kollha qabel, tirrendi, id-dritt. 742 00:44:10,920 --> 00:44:11,510 Ejjew nagħmluha. 743 00:44:11,510 --> 00:44:14,200 744 00:44:14,200 --> 00:44:16,050 Allura inti ltqajna tagħmel SRCS = hello7_mouse.c. 745 00:44:16,050 --> 00:44:21,720 746 00:44:21,720 --> 00:44:22,220 Great. 747 00:44:22,220 --> 00:44:23,490 Ebda żbalji. 748 00:44:23,490 --> 00:44:24,900 U logħba. 749 00:44:24,900 --> 00:44:26,440 >> So here I jkollhom ġurdien tiegħi. 750 00:44:26,440 --> 00:44:29,000 U l-immaġini huwa fil-fatt tmur ġurdien tiegħi. 751 00:44:29,000 --> 00:44:33,140 Issa, fil-logħba inti tagħmel, forsi dan hija bħal jiġru ghadu 752 00:44:33,140 --> 00:44:35,240 karattru ftit tiegħek jew ikun x'ikun. 753 00:44:35,240 --> 00:44:37,440 Iżda hawnhekk għandna l immaġni tmur il-maws. 754 00:44:37,440 --> 00:44:41,000 U meta I ikklikkja,-maws jibda tmur l-immaġni 755 00:44:41,000 --> 00:44:42,860 u l-immaġini huwa qed jaħarbu mill-ġrieden. 756 00:44:42,860 --> 00:44:43,810 Allura dak pjuttost jibred. 757 00:44:43,810 --> 00:44:47,770 U avviż darb'oħra, hemm xorta sejbien kolliżjoni hawn. 758 00:44:47,770 --> 00:44:53,930 >> Allura dan huwa l-ftit finali demo I waqqfu hawn. 759 00:44:53,930 --> 00:44:58,870 U ejja tagħti ħarsa lejn ħaġ'oħra. 760 00:44:58,870 --> 00:45:02,970 Allura lura hawn, semmejt dan jitter. 761 00:45:02,970 --> 00:45:05,000 Kull dritt. 762 00:45:05,000 --> 00:45:12,890 Mela jekk distanza tkun inqas minn ħames pixels, I kien iffissar x uy veloċità għal żero. 763 00:45:12,890 --> 00:45:15,960 X'jiġri jekk irridu teħles minn dik? 764 00:45:15,960 --> 00:45:19,070 Hekk jien ser biss tagħmel dan. 765 00:45:19,070 --> 00:45:23,820 766 00:45:23,820 --> 00:45:30,150 Jekk jogħġbok skuża dan l-istil orribbli, iżda aħna ikkummenta l-kodiċi korretti. 767 00:45:30,150 --> 00:45:38,080 Hekk jien ser jiffranka dan u jagħmlu l- istess kmand minn qabel biex jagħmlu dan. 768 00:45:38,080 --> 00:45:38,785 >> Kull dritt. 769 00:45:38,785 --> 00:45:39,660 U issa x'jiġri? 770 00:45:39,660 --> 00:45:43,260 771 00:45:43,260 --> 00:45:43,760 Tajba. 772 00:45:43,760 --> 00:45:45,801 Aħna qed għadhom wara l ġurdien bħad qabel, 773 00:45:45,801 --> 00:45:49,310 iżda meta aħna jiksbu l-maws, konna ltqajna dan jitter gross. 774 00:45:49,310 --> 00:45:50,320 X'qed jiġri hemmhekk? 775 00:45:50,320 --> 00:45:52,600 Ukoll, fil-vector tagħna matematika, ftakar konna 776 00:45:52,600 --> 00:45:57,540 tieħu d-distanza bejn il- cursor u ċ-ċentru tal-immaġni? 777 00:45:57,540 --> 00:46:00,710 Ukoll, bħal dik approċċi 0, nibdew jkollna 778 00:46:00,710 --> 00:46:06,280 bħal dan it-tip ta 'mġiba crazy fejn l-immaġini huwa tip ta ' 779 00:46:06,280 --> 00:46:08,910 bħall joxxilla madwar il-cursor. 780 00:46:08,910 --> 00:46:12,000 U li jinħoloq dan jitter. 781 00:46:12,000 --> 00:46:13,020 U li verament ikrah. 782 00:46:13,020 --> 00:46:15,103 U inti probabilment ma tixtieq logħob tiegħek tagħmel dan, 783 00:46:15,103 --> 00:46:17,350 sakemm huwa xi tip ta 'effett speċjali. 784 00:46:17,350 --> 00:46:21,960 >> Allura hu għalhekk li għandna biss dan arbitrarja 785 00:46:21,960 --> 00:46:27,150 cut off ta 'ħames pixels, fejn ngħidu jekk huwa fi żmien ħames pixels, aħna qed tajba. 786 00:46:27,150 --> 00:46:29,560 Aħna ma bżonn biex jimxu l-immaġini aktar. 787 00:46:29,560 --> 00:46:32,260 Allura dak hu li għaddej hemmhekk. 788 00:46:32,260 --> 00:46:37,390 789 00:46:37,390 --> 00:46:40,870 >> Allura dak pjuttost ħafna dan. 790 00:46:40,870 --> 00:46:44,390 Inti issa taf kif toħloq tieqa, tagħbija immaġini, 791 00:46:44,390 --> 00:46:49,330 jiġbed immaġni għall-tieqa, jiksbu keyboard input, tirċievi opinjonijiet maws, 792 00:46:49,330 --> 00:46:52,190 hemm mazz ta 'ieħor input li inti ma tkunx 793 00:46:52,190 --> 00:46:56,070 taf kif tikseb jekk inti biss jonfqu ftit minuti tħares lejn dokumentazzjoni. 794 00:46:56,070 --> 00:46:59,670 Allura inti fil-fatt ikollhom pjuttost ftit għodda għad-dispożizzjoni tiegħek issa 795 00:46:59,670 --> 00:47:01,650 jiktbu logħba full-sħiħ. 796 00:47:01,650 --> 00:47:05,030 >> Issa, kull logħba jeħtieġ xi awdjo, iżda d-dokumentazzjoni awdjo 797 00:47:05,030 --> 00:47:06,460 hija wkoll pjuttost tajba. 798 00:47:06,460 --> 00:47:09,200 U jien lest li bet li jekk inti tifhem l-affarijiet 799 00:47:09,200 --> 00:47:14,560 tkellimna dwar llum ma l-immaġini, u l-uċuħ, 800 00:47:14,560 --> 00:47:18,370 l-twieqi, u kollox, imbagħad jidhru l-API awdjo mhuwiex 801 00:47:18,370 --> 00:47:21,170 se tkun dik ħażina. 802 00:47:21,170 --> 00:47:27,420 So I ħerqana li tara dak li toħloq ma SDL. 803 00:47:27,420 --> 00:47:31,595