1 00:00:00,000 --> 00:00:05,069 2 00:00:05,069 --> 00:00:06,110 Томас ЛИВЕЛИ: У реду. 3 00:00:06,110 --> 00:00:07,450 Zdravo svima. 4 00:00:07,450 --> 00:00:08,690 Ја сам Тхомас Ливели. 5 00:00:08,690 --> 00:00:15,160 Овај семинар ће бити писање 2Д игара у Ц користећи СДЛ. 6 00:00:15,160 --> 00:00:17,970 Тако да знам да сте сви питам, да, ја стварно 7 00:00:17,970 --> 00:00:22,050 Желим да играм игрице и да игре, али оно што је ово СДЛ посао? 8 00:00:22,050 --> 00:00:25,320 Тако СДЛ је Ц библиотека. 9 00:00:25,320 --> 00:00:28,270 То стоји за Једноставно ДирецтМедиа Лаиер. 10 00:00:28,270 --> 00:00:31,340 И то је крст платформа, Гаме Девелопмент библиотека. 11 00:00:31,340 --> 00:00:37,160 Ради на Виндовс, Мац, Линук и иОС и Андроид. 12 00:00:37,160 --> 00:00:40,380 Она управља ствари као што су приступ аудио системе 13 00:00:40,380 --> 00:00:44,900 за рачунар, тастатуре, и миша, џојстика, ако су у прилогу. 14 00:00:44,900 --> 00:00:48,300 На мобилном, може чак учинити тоуцх инпут и све то. 15 00:00:48,300 --> 00:00:53,030 И наравно, да рукује графику, цртање ствари на екрану. 16 00:00:53,030 --> 00:00:56,470 >> Тако да је врло широку примену, иако нисте можда чули за њега раније. 17 00:00:56,470 --> 00:01:00,860 То је уграђен у, на пример, Валве Соурце Енгине, 18 00:01:00,860 --> 00:01:04,970 која покреће игре као што су Портал и Теам Фортресс 2. 19 00:01:04,970 --> 00:01:08,680 То је такође у веома великом броју индие игара које излазе, 20 00:01:08,680 --> 00:01:13,545 тако да сам узбуђен да видим шта све ће бити одлука са њим. 21 00:01:13,545 --> 00:01:20,000 >> На семинару циљеви су ти кренули да се развија са СДЛ. 22 00:01:20,000 --> 00:01:22,700 Идемо да науче како да створи прозор игру. 23 00:01:22,700 --> 00:01:26,130 Ми ћемо створити спрајтова, које су слике у својој игри 24 00:01:26,130 --> 00:01:27,744 који могу кретати. 25 00:01:27,744 --> 00:01:29,910 Идемо да науче како да и анимирати спрајтова, 26 00:01:29,910 --> 00:01:32,910 па преместите их около, да да се мењају током времена. 27 00:01:32,910 --> 00:01:35,580 И ми ћемо да научимо како за снимање тастатура и миш 28 00:01:35,580 --> 00:01:38,240 улаз са рачунара. 29 00:01:38,240 --> 00:01:41,550 Оно што нећемо говорити о данас је 3Д графика, 30 00:01:41,550 --> 00:01:45,520 јер је то врло компликован субјект који немамо времена за. 31 00:01:45,520 --> 00:01:49,010 Нећемо научити како да репродукцију звука на нашим играма. 32 00:01:49,010 --> 00:01:53,300 И нећемо градити за било шта осим Линук. 33 00:01:53,300 --> 00:01:58,330 >> Сада су упозорења да постоје, надам се, до краја семинара, 34 00:01:58,330 --> 00:02:01,660 ћете бити задовољни СДЛ документација, 35 00:02:01,660 --> 00:02:05,370 тако да ћете моћи да иду схватим како играти звук за себе. 36 00:02:05,370 --> 00:02:12,150 Такође гради за Мац или ПЦ треба да раде потпуно исти као буилдинг фор Линук, 37 00:02:12,150 --> 00:02:14,700 али подешавање ће бити мало другачија. 38 00:02:14,700 --> 00:02:17,700 Дакле, требало би да можете да схватим како да раде те ствари 39 00:02:17,700 --> 00:02:20,900 до краја данашњег семинара. 40 00:02:20,900 --> 00:02:26,980 >> Дакле, за подешавање, идемо да користите виртуелну машину. 41 00:02:26,980 --> 00:02:31,010 Ми бисмо користили ЦС50 ИДЕ, јер ми ћемо само да се пишу у Ц. 42 00:02:31,010 --> 00:02:35,120 Али пошто ИДЕ није претраживач, ми Не можете креирати нове прозоре или екран 43 00:02:35,120 --> 00:02:36,410 графика у њој. 44 00:02:36,410 --> 00:02:38,450 Зато нам треба виртуелну машину. 45 00:02:38,450 --> 00:02:47,790 Дакле, можете да пратите упутства овде у мануал.ЦС50.нет/апплианце/15~~побј 46 00:02:47,790 --> 00:02:53,290 да инсталирате званични ЦС50 апарат, што је само Линук Виртуал 47 00:02:53,290 --> 00:02:55,110 машина. 48 00:02:55,110 --> 00:02:58,090 >> И онда кад имаш да је све сет их-- њега 49 00:02:58,090 --> 00:03:02,090 Можда мало потрајати, јер веома велики довнлоад-- идеш 50 00:03:02,090 --> 00:03:07,060 да раде у ВМ судо апт-гет упдате. 51 00:03:07,060 --> 00:03:09,410 И то се заиста дешава за ажурирање сав софтвер 52 00:03:09,410 --> 00:03:12,670 пакети на вашем виртуелној машини. 53 00:03:12,670 --> 00:03:20,130 >> Након тога, идеш да покренете судо апт-гет инсталл, либсдл2-2.0-0, 54 00:03:20,130 --> 00:03:27,960 либсдл2-дбг, либсдл2-дев, и додатно либсдл2-слика-2.0-0, 55 00:03:27,960 --> 00:03:32,560 либсдл2-слика-дбг, и либсдл2-слика-Дев. 56 00:03:32,560 --> 00:03:33,640 Па шта да радим? 57 00:03:33,640 --> 00:03:38,440 То само инсталира дебуг информације, документацију, заглавља, 58 00:03:38,440 --> 00:03:41,260 и бинарне за две библиотеке. 59 00:03:41,260 --> 00:03:45,090 Редовно стари, СДЛ 2.0, а друга библиотека 60 00:03:45,090 --> 00:03:50,110 зове СДЛ слике, која ћемо користити 61 00:03:50,110 --> 00:03:54,560 за учитавање сликовне датотеке у нашу игру. 62 00:03:54,560 --> 00:03:57,860 >> Дакле, када имате које такође да, управо када је пита, 63 00:03:57,860 --> 00:04:01,100 само укуцајте да, притисните Ентер да инсталирате те пакете, 64 00:04:01,100 --> 00:04:04,430 и онда би требало да буде добро да иде. 65 00:04:04,430 --> 00:04:14,800 Тако да се код дистрибуције, ви Могу- Ох драга, то није ажуриран. 66 00:04:14,800 --> 00:04:18,480 Осим ако имају гитхуб аццоунт-- ако имате гитхуб рачун, 67 00:04:18,480 --> 00:04:24,450 можете да урадите ово Гит клон команде на репо 68 00:04:24,450 --> 00:04:30,490 и да ће преузимање Гит Репо са свим кодом у њој, 69 00:04:30,490 --> 00:04:31,700 тако да ћете морати код. 70 00:04:31,700 --> 00:04:36,470 >> Ако немате ГитХуб рачун, оно што треба да урадите је тип 71 00:04:36,470 --> 00:04:48,867 вгитхттпс: //гитхуб.цом/тливели/сдл семинар-- и овде је дифферент-- 72 00:04:48,867 --> 00:04:49,700 /арцхиве/мастер.зип. 73 00:04:49,700 --> 00:04:55,610 74 00:04:55,610 --> 00:04:59,220 Дакле, опет, то је потпуно исти УРЛ адреса, осим што ће бити 75 00:04:59,220 --> 00:05:09,010 тливели / СДЛ_семинар / мастер.зип и ви вгит користе да преузмете тога. 76 00:05:09,010 --> 00:05:12,940 И онда само могу унзип да архиву 77 00:05:12,940 --> 00:05:14,900 и онда ћете имати све изворног кода. 78 00:05:14,900 --> 00:05:17,580 Жао ми је због тога. 79 00:05:17,580 --> 00:05:23,880 А онда код ће бити домаћин у у ЦС50 семинара је веб страница у пар 80 00:05:23,880 --> 00:05:25,230 дана. 81 00:05:25,230 --> 00:05:26,590 >> U redu. 82 00:05:26,590 --> 00:05:29,932 Како да почнете писање сопствену игру? 83 00:05:29,932 --> 00:05:31,890 Па, прва ствар ћемо желите да урадите 84 00:05:31,890 --> 00:05:34,740 је погледате СДЛ документацију. 85 00:05:34,740 --> 00:05:37,020 Ево ВМ. 86 00:05:37,020 --> 00:05:38,720 И овде је веб страница. 87 00:05:38,720 --> 00:05:40,340 Ја сам путовао да живим либсдл.орг. 88 00:05:40,340 --> 00:05:43,110 89 00:05:43,110 --> 00:05:48,140 Шта ћу да радим овде је ићи преко на бочну траку, под документације, 90 00:05:48,140 --> 00:05:51,040 и кликните на вики. 91 00:05:51,040 --> 00:05:56,870 То ће ме довести до вики да има већину документације за СДЛ. 92 00:05:56,870 --> 00:06:01,360 Током на бочној траци овде, ми смо да кликнете АПИ по категоријама 93 00:06:01,360 --> 00:06:04,300 јер ће дати УС леп поглед категорички 94 00:06:04,300 --> 00:06:07,770 целе АПИ за СДЛ. 95 00:06:07,770 --> 00:06:12,390 >> Тако, на пример, имамо основна иницијализација 96 00:06:12,390 --> 00:06:18,380 и угасити, све врсте административне ствари за коришћење СДЛ, 97 00:06:18,380 --> 00:06:21,630 и онда имамо одељак за приказивање ствари на екрану. 98 00:06:21,630 --> 00:06:23,000 То је видео. 99 00:06:23,000 --> 00:06:25,790 Улазни догађаји, то је добијање унос са тастатуре, 100 00:06:25,790 --> 00:06:29,710 узимајући унос из миша, и џојстик, ако га имате чак. 101 00:06:29,710 --> 00:06:32,901 Постоји повратне силе за ствари као игра контролора, који 102 00:06:32,901 --> 00:06:34,150 нећемо да разговарамо. 103 00:06:34,150 --> 00:06:35,630 А ево и звук. 104 00:06:35,630 --> 00:06:38,940 А онда је ту гомила другог ствари које СДЛ може да уради за вас. 105 00:06:38,940 --> 00:06:43,830 >> Али данас ћемо да се фокусирамо на иницијализацију овде, 106 00:06:43,830 --> 00:06:48,332 приказивање слике у видеу секција, и руковање улазних догађаја. 107 00:06:48,332 --> 00:06:50,290 Дакле, то су главни секције документације 108 00:06:50,290 --> 00:06:53,050 да треба да бринемо о томе. 109 00:06:53,050 --> 00:06:57,170 Само за забаву, ако пређемо овде и кликните на АПИ по имену, 110 00:06:57,170 --> 00:07:04,350 можемо видети списак сваког једна ствар у СДЛ библиотеке. 111 00:07:04,350 --> 00:07:11,330 Дакле, све ове функције, Набројани, структуре, луди количина ствари, 112 00:07:11,330 --> 00:07:12,820 abecedni redosled. 113 00:07:12,820 --> 00:07:14,580 И јасно, док знаш да радиш, 114 00:07:14,580 --> 00:07:19,100 ово неће бити превише помоћи, због чега радимо АПИ по категоријама. 115 00:07:19,100 --> 00:07:20,810 >> Дакле, хајде да почнемо. 116 00:07:20,810 --> 00:07:25,680 Надам се да сам већ преузети код дистрибуције. 117 00:07:25,680 --> 00:07:30,070 И шта можете да урадите је, зар не овде у ЦС50 апарата, 118 00:07:30,070 --> 00:07:31,150 једноставно отворите терминал. 119 00:07:31,150 --> 00:07:33,750 120 00:07:33,750 --> 00:07:34,440 Idemo. 121 00:07:34,440 --> 00:07:40,740 Дакле, ја сам већ преузета дистрибуција код користећи .зип 122 00:07:40,740 --> 00:07:41,690 метход. 123 00:07:41,690 --> 00:07:43,140 И ја сам га откопчао. 124 00:07:43,140 --> 00:07:46,120 Дакле, овде је у СДЛ семинара господара. 125 00:07:46,120 --> 00:07:49,750 Зато ћу да идем у тај директоријум. 126 00:07:49,750 --> 00:07:55,310 И шта видимо овде је да имамо седам Ц фајлова. 127 00:07:55,310 --> 00:07:58,070 И ово иде у коду идемо да гледамо данас. 128 00:07:58,070 --> 00:08:00,040 Имамо мејкфајл. 129 00:08:00,040 --> 00:08:06,950 И имамо ресурсе директоријум, који једноставно има слику 130 00:08:06,950 --> 00:08:09,070 да ћете се видети ускоро. 131 00:08:09,070 --> 00:08:16,060 >> Дакле, хајде да отворимо ове датотеке коришћењем Г-Едит уредника. 132 00:08:16,060 --> 00:08:22,000 Дакле, желим да отворим све датотеке које почети са Поздрав и завршити са .ц. 133 00:08:22,000 --> 00:08:23,380 Idemo. 134 00:08:23,380 --> 00:08:28,180 Дакле, то је мала прозор, тако да смо Покушаћу да то буде већи. 135 00:08:28,180 --> 00:08:28,900 Не, то оде. 136 00:08:28,900 --> 00:08:32,836 137 00:08:32,836 --> 00:08:34,570 >> U redu. 138 00:08:34,570 --> 00:08:37,959 Дакле, овде је први Филе ћемо да погледамо. 139 00:08:37,959 --> 00:08:39,000 То се зове хелло1_сдл.ц. 140 00:08:39,000 --> 00:08:41,890 141 00:08:41,890 --> 00:08:47,980 И све то ради је иницијализацију СДЛ библиотека, тако да можемо почети да га користите. 142 00:08:47,980 --> 00:08:51,550 Како ти знаш да дође са овим кодом сами? 143 00:08:51,550 --> 00:08:53,850 Па, ако погледамо преко у документацији 144 00:08:53,850 --> 00:08:58,040 и идемо у иницијализацију и затворе поглавље, 145 00:08:58,040 --> 00:09:02,230 то ће нам све рећи о томе како да покрене СДЛ. 146 00:09:02,230 --> 00:09:06,630 Дакле, дефинитивно прочитати ово неки други пут. 147 00:09:06,630 --> 00:09:09,230 То ће вам рећи све о томе шта се овде дешава. 148 00:09:09,230 --> 00:09:14,360 Али, главни суштина је у томе да морамо да позовемо ову функцију СДЛ Ин Ит 149 00:09:14,360 --> 00:09:18,910 и прође га шта врсте ствари желимо библиотека да се покрене. 150 00:09:18,910 --> 00:09:23,620 Дакле, у нашем случају, ми ћемо само да покрене видео за сада, 151 00:09:23,620 --> 00:09:26,690 тако да можемо почети са приказивањем слике. 152 00:09:26,690 --> 00:09:32,370 >> Овде можете да видите да ли кликнемо на СДЛ у томе, ми 153 00:09:32,370 --> 00:09:36,160 можете добити чак и више информација, укључујући повратну вредност. 154 00:09:36,160 --> 00:09:39,050 Тако смо овде да га видим ретурнес нула на успех. 155 00:09:39,050 --> 00:09:43,320 Дакле, у нашем коду, идемо у види ако не врати нула, 156 00:09:43,320 --> 00:09:47,020 а ако не врати нула, тако да није био успешан, 157 00:09:47,020 --> 00:09:50,650 онда ћемо једноставно штампање грешка користећи ову другу функцију, 158 00:09:50,650 --> 00:09:56,260 СДЛ гет грешка, која враћа стринг описујући грешку која се догодила. 159 00:09:56,260 --> 00:09:58,510 Ми ћемо исписати да еррор и онда смо само 160 00:09:58,510 --> 00:10:02,270 да изадјете из програма са кодом грешке. 161 00:10:02,270 --> 00:10:06,470 >> Затим још једна ствар која нам треба да урадите је да, пре него што програмских излаза, 162 00:10:06,470 --> 00:10:10,830 ако успешно иницијализован СДЛ, само треба да га СДЛ одустану зову. 163 00:10:10,830 --> 00:10:15,750 И то ће носити чишћење све унутрашње ресурсе СДЛ за нас. 164 00:10:15,750 --> 00:10:21,240 Дакле, документација поново тамо--, Овде смо у иницијализацију 165 00:10:21,240 --> 00:10:23,640 и затворила поглавље документације. 166 00:10:23,640 --> 00:10:26,680 Можете само кликнути на Функција овде, СДЛ отказ, 167 00:10:26,680 --> 00:10:28,700 можете прочитати све о томе као добро. 168 00:10:28,700 --> 00:10:31,400 И много од ових функција документација страница 169 00:10:31,400 --> 00:10:35,630 имате примере кода, тако да је ово је веома добар извор. 170 00:10:35,630 --> 00:10:39,610 Дефинитивно проведем неко време читајући делове тхис вики 171 00:10:39,610 --> 00:10:42,520 ако ћеш да урадиш ово за пројекат. 172 00:10:42,520 --> 00:10:43,760 >> U redu. 173 00:10:43,760 --> 00:10:46,590 Дакле, то је наш целокупни програм. 174 00:10:46,590 --> 00:10:53,935 Шта можемо да урадимо сада је-- сам ће отворити мејкфајл овде, 175 00:10:53,935 --> 00:10:56,150 па ћу да узмем погледајте како то ради. 176 00:10:56,150 --> 00:10:59,500 И то је веома једноставна Макефиле, слично ономе што сте раније видели. 177 00:10:59,500 --> 00:11:04,010 Једна од главних разлика да, ево, ово 178 00:11:04,010 --> 00:11:07,870 ће убацити резултат трчања Ова команда, која сте већ 179 00:11:07,870 --> 00:11:10,850 инсталиран ако сте инсталирали СДЛ. 180 00:11:10,850 --> 00:11:13,230 И ово је наредба који ће генерисати 181 00:11:13,230 --> 00:11:16,710 неке екстра заставе за компајлер. 182 00:11:16,710 --> 00:11:22,050 >> Поред тога, ми смо га дајем Све уобичајене команде, као и 183 00:11:22,050 --> 00:11:23,430 Ове две команде. 184 00:11:23,430 --> 00:11:30,270 Тако да -лсдл2-имаге ручке повезивање у СДЛ Имаге Либрари. 185 00:11:30,270 --> 00:11:36,200 И -ЛМ заправо управља повезивање у стандардном Ц Матх Либрари. 186 00:11:36,200 --> 00:11:40,630 Дакле, нећемо требати они за све наше Ц фајлова, 187 00:11:40,630 --> 00:11:43,900 али смо их ставили у тако да можемо користе исти Макефиле за све 188 00:11:43,900 --> 00:11:44,816 без модификација. 189 00:11:44,816 --> 00:11:46,970 190 00:11:46,970 --> 00:11:50,080 >> Овамо у изворима, ово је место где бих 191 00:11:50,080 --> 00:11:53,680 ставити датотеке које сте ишли саставити за ваш пројекат. 192 00:11:53,680 --> 00:11:57,570 Али пошто сваки од мог Ц поднесе овде има главну функцију, 193 00:11:57,570 --> 00:12:00,000 да ће се збунити ако их све у. 194 00:12:00,000 --> 00:12:06,930 Зато ћу само рећи, за сада, хелло1_сдл.ц, 195 00:12:06,930 --> 00:12:11,150 што је један смо управо гледали. 196 00:12:11,150 --> 00:12:18,740 Дакле, ако се вратим преко овде, ја могу да правим. 197 00:12:18,740 --> 00:12:22,160 И шта је урадио то је само састављен тај први фајл. 198 00:12:22,160 --> 00:12:28,780 И онда можемо тип ./гаме, јер то је извршна је произведено. 199 00:12:28,780 --> 00:12:31,660 И све што је урадио је штампање иницијализација успешна. 200 00:12:31,660 --> 00:12:33,300 То смо и урадили нешто добро. 201 00:12:33,300 --> 00:12:36,200 Али то је било некако досадан, јер нисмо видели прозор, 202 00:12:36,200 --> 00:12:37,900 ништа није креће. 203 00:12:37,900 --> 00:12:41,030 >> Тако велика, имамо СДЛ инитиализед. 204 00:12:41,030 --> 00:12:43,520 Сада, хајде да пређемо на нешто мало занимљивије. 205 00:12:43,520 --> 00:12:54,700 Дакле, овде имамо хелло2_виндов.ц, и ово ће бити нешто 206 00:12:54,700 --> 00:13:00,010 комплекс Ц програм који иницира СДЛ као и раније, 207 00:13:00,010 --> 00:13:04,250 осим сада и идемо да покрене СДЛ тајмер. 208 00:13:04,250 --> 00:13:07,720 И то ће нас пустити приступити унутрашње тајмер 209 00:13:07,720 --> 00:13:10,550 и користе функције које се односе на време. 210 00:13:10,550 --> 00:13:11,920 >> И онда хајде да погледамо овде доле. 211 00:13:11,920 --> 00:13:16,840 Оно што ми радимо јесте да имамо тај показивач до СДЛ прозора струцт који 212 00:13:16,840 --> 00:13:21,160 ће бити креиран од стране овог позива функцији, СДЛ стварају прозор. 213 00:13:21,160 --> 00:13:25,380 Дакле, ово је потребно много аргумената, па хајде да погледамо документације. 214 00:13:25,380 --> 00:13:27,930 Па опет, ја ћу АПИ по категоријама, ја сам 215 00:13:27,930 --> 00:13:33,820 иде доле на видео овде, а први секција, приказивање управљање прозора. 216 00:13:33,820 --> 00:13:36,470 Дакле, овај одељак има тона ствари у њему, 217 00:13:36,470 --> 00:13:39,970 али ако погледате кроз ове функције, ви ћете 218 00:13:39,970 --> 00:13:43,620 види да је вероватно онај који смо Желим се зове СДЛ створи прозор, 219 00:13:43,620 --> 00:13:46,600 што се дешава да се на самом врху. 220 00:13:46,600 --> 00:13:49,080 >> И то је Документација за ову функцију. 221 00:13:49,080 --> 00:13:53,710 Прозор ће имати наслов, једно к, и позицију на екрану, 222 00:13:53,710 --> 00:13:56,960 да ће имати ширину, висина, а онда ће се предузети неке заставе. 223 00:13:56,960 --> 00:14:01,220 Сада, ми уствари не занима било који од ових застава сада, 224 00:14:01,220 --> 00:14:04,560 али ако желите да урадите нешто као да прозор преко целог екрана, 225 00:14:04,560 --> 00:14:07,920 можете да погледате то. 226 00:14:07,920 --> 00:14:13,190 За сада, ми ћемо само да користе ове посебне вредности, 227 00:14:13,190 --> 00:14:18,775 СДЛ прозор, плус средини за к и И у реда 228 00:14:18,775 --> 00:14:21,800 само да створи прозор у центру нашег екрана. 229 00:14:21,800 --> 00:14:24,370 >> Дакле, то је оно што ради. 230 00:14:24,370 --> 00:14:27,960 А ако се деси да буде прозор нулл, што значи да је грешка, 231 00:14:27,960 --> 00:14:32,570 онда опет ћемо само да принт грешку користећи СДЛ гет грешку. 232 00:14:32,570 --> 00:14:36,570 А онда зато што инитиализед СДЛ сада треба да га затворите. 233 00:14:36,570 --> 00:14:40,900 Тако зовемо СДЛ прекинути пре враћа један за главни. 234 00:14:40,900 --> 00:14:42,905 >> Дакле, имамо овај прозор отвори надам се. 235 00:14:42,905 --> 00:14:44,613 А шта ћемо да урадите је да идемо 236 00:14:44,613 --> 00:14:50,340 да позове СДЛ за 5.000 милисекунди, што је исто као пет секунди. 237 00:14:50,340 --> 00:14:55,640 И када смо завршили са тим, то ће уништити прозор, 238 00:14:55,640 --> 00:14:59,470 очистити СДЛ библиотеке, и изађете из програма. 239 00:14:59,470 --> 00:15:05,240 Дакле, идемо напред и да то шута. 240 00:15:05,240 --> 00:15:08,660 >> Тако да сада уместо промене мејкфајл сваки пут, 241 00:15:08,660 --> 00:15:12,180 Ја једноставно могу да правим, и затим на командној линији, 242 00:15:12,180 --> 00:15:16,090 кажу извори једнако и онда фајл смо изради. 243 00:15:16,090 --> 00:15:17,090 Тако да је хелло2_виндов.ц. 244 00:15:17,090 --> 00:15:21,390 245 00:15:21,390 --> 00:15:21,890 Фантастично. 246 00:15:21,890 --> 00:15:22,970 Нема еррос. 247 00:15:22,970 --> 00:15:26,085 Сада, ако останемо нашу извршну, видимо овај прозор. 248 00:15:26,085 --> 00:15:27,960 Сада постоји неколико Проблеми са прозора. 249 00:15:27,960 --> 00:15:32,820 Можемо то кретати, али има ово позадина ђубре унутра. 250 00:15:32,820 --> 00:15:34,660 Дакле, ми нисмо извући ништа, па је 251 00:15:34,660 --> 00:15:38,210 пуна смећа, које је управо оно што очекујемо. 252 00:15:38,210 --> 00:15:41,010 >> Осим тога, не можемо затворити прозор. 253 00:15:41,010 --> 00:15:44,780 Ја притиском на овај Кс у угао и ништа се не дешава. 254 00:15:44,780 --> 00:15:47,840 Тако ћемо видети како да поправи да се у мало. 255 00:15:47,840 --> 00:15:51,750 Дакле, хајде да поправимо део где је Прозор је пуна смећа на првом месту. 256 00:15:51,750 --> 00:16:00,850 Дакле, ако одемо у хелло3_имаге.ц, што можемо видети да смо додали неколико 257 00:16:00,850 --> 00:16:03,360 више ствари овде. 258 00:16:03,360 --> 00:16:08,740 Додали смо нову заглавље филе да се функције тајмера. 259 00:16:08,740 --> 00:16:11,490 Мислим да смо то урадили у последњих једна, такође, и нисам споменуо. 260 00:16:11,490 --> 00:16:13,550 Али сада јер смо рад са сликама, 261 00:16:13,550 --> 00:16:18,720 морамо укључити СДЛ слика заглавље датотеке као добро. 262 00:16:18,720 --> 00:16:22,087 Дакле, то је иста ствар као и пре, инитиализинг СДЛ овде, 263 00:16:22,087 --> 00:16:23,420 Исто се баве стварањем прозоре. 264 00:16:23,420 --> 00:16:25,380 Видели смо то раније сада. 265 00:16:25,380 --> 00:16:29,870 >> Сада морамо да створимо нешто што се зове визуализации, који некако иде уз 266 00:16:29,870 --> 00:16:30,800 са прозором. 267 00:16:30,800 --> 00:16:33,860 Али то је нека врста апстрактна објекат који је 268 00:16:33,860 --> 00:16:37,370 задужен за радио свих ових цртање операције до прозора. 269 00:16:37,370 --> 00:16:41,580 И заправо одговара са програмом оптерећене 270 00:16:41,580 --> 00:16:47,880 у графичког хардвера у вашем рачунар или телефон или било шта друго. 271 00:16:47,880 --> 00:16:51,005 Тако су заставе желимо да прође то-- а можете погледати у документацији 272 00:16:51,005 --> 00:16:56,160 За више детаља овде- се иде да се СДЛ рендер убрзан, што 273 00:16:56,160 --> 00:16:58,550 значи да ће бити помоћу графичког хардвера 274 00:16:58,550 --> 00:17:01,490 и то не само емулирано у софтверу. 275 00:17:01,490 --> 00:17:07,390 >> И ми ћемо користити СДЛ рендерер ПРЕСЕНТВСИНЦ. 276 00:17:07,390 --> 00:17:12,280 ВСинц је ствар која једноставно чини Ваши графика изгледају боље и спречава 277 00:17:12,280 --> 00:17:14,970 ово се зове екран терор, где је половина 278 00:17:14,970 --> 00:17:17,720 једног оквира и половини следеће фраме гет дравн истовремено 279 00:17:17,720 --> 00:17:20,056 и изгледа грозно. 280 00:17:20,056 --> 00:17:23,130 Али опет, можете да читате о томе на своју руку. 281 00:17:23,130 --> 00:17:24,319 >> Дакле, имамо неке заставе овде. 282 00:17:24,319 --> 00:17:27,810 И тако смо само да позовем ова функција СДЛ створи рендерер. 283 00:17:27,810 --> 00:17:31,340 Ми ћемо му дати прозор да се друже са тим рендеровање. 284 00:17:31,340 --> 00:17:34,520 Негативна значи да није брига шта Грапхицс Дривер ћемо користити. 285 00:17:34,520 --> 00:17:36,603 Тако да би требало прилично увек бити негативна, 286 00:17:36,603 --> 00:17:39,010 ако не знате о управљачким програмима за графику. 287 00:17:39,010 --> 00:17:41,650 И онда ћемо тек тако да га прође наше заставе. 288 00:17:41,650 --> 00:17:47,240 Дакле, ако је то враћа нулл, онда смо łтампања грешку као и обично, 289 00:17:47,240 --> 00:17:49,550 али онда смо и идемо да уништи прозор 290 00:17:49,550 --> 00:17:54,970 да почисти те ресурсе прије позива СДЛ отказ и врате. 291 00:17:54,970 --> 00:17:58,110 >> Сада, занимљив део овде где смо се учита наш имиџ 292 00:17:58,110 --> 00:18:00,870 користите ову функцију ИМГ_лоад. 293 00:18:00,870 --> 00:18:04,050 Ово је једина функција идемо да користи од СДЛ Имаге Либрари. 294 00:18:04,050 --> 00:18:05,480 То је једина нам треба. 295 00:18:05,480 --> 00:18:12,950 То је функција која узима стринг то је пут било слике извора. 296 00:18:12,950 --> 00:18:18,024 И то може бити .пнг, ГИФ, Битмап, било који од ових ствари. 297 00:18:18,024 --> 00:18:19,690 И зато је ова функција је тако лепо. 298 00:18:19,690 --> 00:18:22,560 То може носити прилично било ког формата. 299 00:18:22,560 --> 00:18:27,240 Оптерећења га у меморији и складишти је као што назива СДЛ површину. 300 00:18:27,240 --> 00:18:34,660 >> Сада су СДЛ површина је само струцт која представља сликовних података у меморији. 301 00:18:34,660 --> 00:18:38,054 Дакле, можете прочитати више о да је у документацији два. 302 00:18:38,054 --> 00:18:40,720 А ако то грешке, онда смо урадити целу ствар где 303 00:18:40,720 --> 00:18:44,480 штампамо грешку, затворити ресурси, а затим напустио је програм. 304 00:18:44,480 --> 00:18:48,970 Сада је занимљива ствар је, пре можемо извући ову слику на прозору, 305 00:18:48,970 --> 00:18:51,390 морамо да заправо текстура бити. 306 00:18:51,390 --> 00:18:54,460 Сада текстура одговара да сликовних података натоварених 307 00:18:54,460 --> 00:18:57,820 у меморију графичког хардвера екипе. 308 00:18:57,820 --> 00:19:00,720 >> Дакле, површина је у главни меморије, редовно меморија 309 00:19:00,720 --> 00:19:05,550 да смо користили цео семестар, а текстура је у овом одвојеној ВРАМ 310 00:19:05,550 --> 00:19:09,410 меморија која контроле графичке картице. 311 00:19:09,410 --> 00:19:13,170 Тако зовемо ову функцију СДЛ_ЦреатеТектуреФромСурфаце. 312 00:19:13,170 --> 00:19:17,104 Ми смо му дати нашу рендерер и нашу површину. 313 00:19:17,104 --> 00:19:19,020 И онда смо уствари завршили са површином, 314 00:19:19,020 --> 00:19:20,311 па ми ћемо само да га ослободи. 315 00:19:20,311 --> 00:19:22,210 Ми не треба више. 316 00:19:22,210 --> 00:19:26,650 И онда тако да ако овај позив ерроред и вратио нула, 317 00:19:26,650 --> 00:19:29,630 онда ћемо да радимо целу грешка поново извештавање ствар. 318 00:19:29,630 --> 00:19:30,920 >> U redu. 319 00:19:30,920 --> 00:19:34,810 Овде смо да у неким Стварни рендеринг функције. 320 00:19:34,810 --> 00:19:37,730 Дакле, зове СДЛ_РендерЦлеар и то пролази 321 00:19:37,730 --> 00:19:42,550 визуализации повезана са нашим прозором једноставно чини прозор црнац. 322 00:19:42,550 --> 00:19:47,650 Тако да уклања то ђубре које смо видели у наш прозор пре и чини црно. 323 00:19:47,650 --> 00:19:50,750 И онда идемо звати СДЛ_РендерЦопи, 324 00:19:50,750 --> 00:19:53,010 дајте му наше рендерер, наш текстуру. 325 00:19:53,010 --> 00:19:55,800 И причаћемо о томе шта ова поља су у мало. 326 00:19:55,800 --> 00:19:57,830 Али то ће узети податке текстуре 327 00:19:57,830 --> 00:20:03,100 и копирајте га на наш Прозор за цртање слике. 328 00:20:03,100 --> 00:20:07,020 Дакле, након што смо урадили ову копију подаци на нашој прозора, 329 00:20:07,020 --> 00:20:11,180 морамо да урадимо ову додатну функцију зове СДЛ_РендерПресент. 330 00:20:11,180 --> 00:20:15,360 >> И ово је занимљиво јер ово постаје 331 00:20:15,360 --> 00:20:18,770 у теми званој двоструко баферовање. 332 00:20:18,770 --> 00:20:24,380 Дакле, двоструко баферовање је техника која чини ти графика изгледају много боље. 333 00:20:24,380 --> 00:20:28,240 Опет, она спречава да екран цепање Ја сам говорио о раније, где 334 00:20:28,240 --> 00:20:29,590 имате два амортизера. 335 00:20:29,590 --> 00:20:32,260 Ту је вратио у бафер меморија и предњи амортизер. 336 00:20:32,260 --> 00:20:36,410 Предњи амортизер је буквално шта је на екрану у овом тренутку. 337 00:20:36,410 --> 00:20:42,070 Дакле, ми радимо све ово драв варијације, као СДЛ рендер копију или СДЛ_РендерЦлеар 338 00:20:42,070 --> 00:20:43,080 до задњег бафер. 339 00:20:43,080 --> 00:20:44,800 Дакле, они модификују ствари у задњем пуферу. 340 00:20:44,800 --> 00:20:48,970 Овде можемо да се овај цртеж зелени квадрат до задњег бафер. 341 00:20:48,970 --> 00:20:52,300 >> Дакле, када смо урадили радимо наши рендер операције, које 342 00:20:52,300 --> 00:20:55,700 Можда се заиста дуго време, шта ћемо да радимо 343 00:20:55,700 --> 00:20:57,860 је замените буфферс. 344 00:20:57,860 --> 00:21:00,720 Тако да само треба буквално Предњи амортизер и назад бафер 345 00:21:00,720 --> 00:21:02,990 и пребацује их, тако да, тренутно, 346 00:21:02,990 --> 00:21:06,630 у једној операцији, уместо можда стотине или хиљаде, 347 00:21:06,630 --> 00:21:10,910 Све наше ново доноси објекти су на екрану. 348 00:21:10,910 --> 00:21:13,160 И то спречава ствари као освежење екрана 349 00:21:13,160 --> 00:21:16,710 када смо само сте нацртали пола од наших објеката за рам. 350 00:21:16,710 --> 00:21:21,280 Зато морамо да позовемо СДЛ_РендерПресент, као и 351 00:21:21,280 --> 00:21:23,320 као СДЛ_РендерЦопи. 352 00:21:23,320 --> 00:21:25,749 >> Опет, ми ћемо само да чекају пет секунди. 353 00:21:25,749 --> 00:21:27,540 Онда ћемо очистити наше ресурсе. 354 00:21:27,540 --> 00:21:29,540 Имамо доста висе овај пут. 355 00:21:29,540 --> 00:21:31,750 И онда ћемо тек тако да изадјете из програма. 356 00:21:31,750 --> 00:21:35,350 Па хајде да урадимо то. 357 00:21:35,350 --> 00:21:41,880 Идем да куцате маке, а затим извори једнака хелло-- ово је сада 3имаге.ц. 358 00:21:41,880 --> 00:21:49,632 359 00:21:49,632 --> 00:21:52,240 У реду, то саставио нема грешака. 360 00:21:52,240 --> 00:21:57,210 И можете видети овде сам сада сам извучена моју слику, Здраво, ЦС50! 361 00:21:57,210 --> 00:22:00,560 у нашем прозору, који нестаје после пет секунди. 362 00:22:00,560 --> 00:22:02,090 >> Дакле, ово још увек има проблема, зар не? 363 00:22:02,090 --> 00:22:05,750 Ово није добар апликација, јер када покушам да затворите прозор, 364 00:22:05,750 --> 00:22:06,500 ništa se ne dešava. 365 00:22:06,500 --> 00:22:09,540 То је к увек није одговарајућа. 366 00:22:09,540 --> 00:22:17,420 Дакле, хајде да погледају следећи фајл, хелло4аниматион. 367 00:22:17,420 --> 00:22:21,850 Дакле, ово је фајл који ће увести 368 00:22:21,850 --> 00:22:25,124 кретање и кретање у нашу слику. 369 00:22:25,124 --> 00:22:27,040 Тако ћемо урадити исто као и пре, 370 00:22:27,040 --> 00:22:30,190 иницира СДЛ, креирајте прозор, креирајте рендерер, 371 00:22:30,190 --> 00:22:33,030 учитати слику у меморије, направите текстуру. 372 00:22:33,030 --> 00:22:35,090 Видели смо све то раније. 373 00:22:35,090 --> 00:22:36,770 Дакле, ово је ново. 374 00:22:36,770 --> 00:22:42,305 Ми ћемо имати структуру под називом СДЛ РЕЦТ, која је само правоугаоник. 375 00:22:42,305 --> 00:22:49,950 Ако одемо тамо, можемо урадите потрагу за СДЛ Рецт, 376 00:22:49,950 --> 00:22:54,040 и можете да видите да је то веома једноставна структура. 377 00:22:54,040 --> 00:22:56,760 Она има к, и за положај, и он 378 00:22:56,760 --> 00:23:02,080 има ширину и висину за величина правоугаоника. 379 00:23:02,080 --> 00:23:07,785 >> Па шта ћемо да урадимо је да смо да дефинишу овај СДЛ Рецт дест, 380 00:23:07,785 --> 00:23:09,480 за одредиште. 381 00:23:09,480 --> 00:23:14,130 И ово је место на екрану где 382 00:23:14,130 --> 00:23:16,005 ћемо бити цртеж наш имиџ, зар Дакле, 383 00:23:16,005 --> 00:23:17,880 ако ћемо да будемо померањем слике око, 384 00:23:17,880 --> 00:23:20,300 онда је дестинација у којој ћемо извући слику 385 00:23:20,300 --> 00:23:22,620 треба да се креће. 386 00:23:22,620 --> 00:23:24,910 Тако ћемо звати Функција СДЛ_КуериТектуре. 387 00:23:24,910 --> 00:23:27,550 388 00:23:27,550 --> 00:23:33,500 И приметио сам пролазу адресу од дест.в, којих је ширина, 389 00:23:33,500 --> 00:23:36,950 и дест.х, који је висина. 390 00:23:36,950 --> 00:23:40,425 И тако ће СДЛ_КуериТектуре да сачувате у тим областима ширина 391 00:23:40,425 --> 00:23:41,675 а висина нашег текстуре. 392 00:23:41,675 --> 00:23:44,680 393 00:23:44,680 --> 00:23:47,030 >> И шта онда ћу да урадите је да идем 394 00:23:47,030 --> 00:23:55,580 да подесите дест.к да буде прозор ширине минус дест.в, што је 395 00:23:55,580 --> 00:23:59,000 ширина спрајт, подељено са 2. 396 00:23:59,000 --> 00:24:03,860 И то ће да га подесите тако да је слика центриран 397 00:24:03,860 --> 00:24:06,780 у нашем прозору, у реду? 398 00:24:06,780 --> 00:24:08,652 Тако да сада имам и позицију. 399 00:24:08,652 --> 00:24:10,360 И то ће бити променљива која је 400 00:24:10,360 --> 00:24:16,390 мења, јер ћемо бити померањем слике у и правцу. 401 00:24:16,390 --> 00:24:19,050 А сада имамо нешто назива анимација петље. 402 00:24:19,050 --> 00:24:21,180 >> Како се ради анимација? 403 00:24:21,180 --> 00:24:27,630 Па, људско око може да детектује 12 разликује слике у сваком другом, у реду? 404 00:24:27,630 --> 00:24:33,060 Дакле, ако фласх 12 Имаге картице на мене у секунди, видео сам сваки од тих слика 405 00:24:33,060 --> 00:24:35,950 као свој посебан појединачну слику. 406 00:24:35,950 --> 00:24:39,690 Сада, ако фласх више слике на мене у другом, 407 00:24:39,690 --> 00:24:42,140 онда ће почети ми еие да их замагли заједно 408 00:24:42,140 --> 00:24:46,920 и ја бих га доживљавају као покрету, уместо једног посебног слике. 409 00:24:46,920 --> 00:24:51,930 Тако, на пример, филмове и телевизију, они фласх слике на вас 24 пута 410 00:24:51,930 --> 00:24:52,570 други. 411 00:24:52,570 --> 00:24:55,110 Дакле, то је 24 фрејмова у секунди. 412 00:24:55,110 --> 00:25:00,136 Цомпутер екрани, с друге стране, често на 60 фрејмова у секунди. 413 00:25:00,136 --> 00:25:01,260 То је њихова брзина освежи. 414 00:25:01,260 --> 00:25:04,650 Тако често рефресх слика на екрану. 415 00:25:04,650 --> 00:25:08,960 Дакле, наш циљ ће бити 60 фрејмова у секунди за наше игре. 416 00:25:08,960 --> 00:25:11,770 417 00:25:11,770 --> 00:25:13,710 >> Дакле, хајде да видимо да је у коду. 418 00:25:13,710 --> 00:25:19,064 Дакле, за сваки оквир, прво смо да обришете прозор. 419 00:25:19,064 --> 00:25:20,230 Ово је општи образац. 420 00:25:20,230 --> 00:25:22,450 Увек јасно да тај прозор сваки оквир, а затим 421 00:25:22,450 --> 00:25:25,210 учинити све цртежу операције, а онда на крају, 422 00:25:25,210 --> 00:25:29,610 не РендерПресент да покаже све у оквиру. 423 00:25:29,610 --> 00:25:33,910 А онда ћеш има чекања на крају 424 00:25:33,910 --> 00:25:36,340 да сачека до следећег оквир треба да почне. 425 00:25:36,340 --> 00:25:38,650 >> Дакле, ако сам радила пуно комплекс рачунање овде 426 00:25:38,650 --> 00:25:43,100 да је више од 16 милисекунди, било би немогуће за мене 427 00:25:43,100 --> 00:25:46,890 да се ту брзину од 60 који Желео сам, јер је сваки оквир је 428 00:25:46,890 --> 00:25:48,750 предуго да израчуна. 429 00:25:48,750 --> 00:25:52,340 Осим тога, ми смо стварно ради врста занемарљивог обима посла 430 00:25:52,340 --> 00:25:54,820 овде, јер само ту једна ствар ми цртање. 431 00:25:54,820 --> 00:25:59,390 Тако да сам само чекати 1/60 оф а друго, што је дужина 432 00:25:59,390 --> 00:26:01,520 од рама између њих оквирима. 433 00:26:01,520 --> 00:26:05,610 Тако сам некако претварам ради сав мој посао потребно нула времена. 434 00:26:05,610 --> 00:26:09,050 Али у праву игру, морао би да одузмемо 435 00:26:09,050 --> 00:26:13,760 износ времена је било потребно да урадите све то раде из твог времена одмарања. 436 00:26:13,760 --> 00:26:16,970 >> И тако, шта сам ја заправо ради у овој петљи? 437 00:26:16,970 --> 00:26:19,070 Ја јасно прозор. 438 00:26:19,070 --> 00:26:27,470 Ја поставити дест.и, који је инт на мој стварни положај година баци у инт. 439 00:26:27,470 --> 00:26:32,070 Сада желим флоат резолуцију за моју и позицију у мојој игри, 440 00:26:32,070 --> 00:26:34,150 али онда да стварно драв га на екран, 441 00:26:34,150 --> 00:26:39,070 треба интс, јер је у јединицама пиксела, тако да је оно што је од ливеног је за. 442 00:26:39,070 --> 00:26:41,745 Ја ћу да скренем слику. 443 00:26:41,745 --> 00:26:45,180 Дакле, ово је извор правоугаоник. 444 00:26:45,180 --> 00:26:47,060 И ово је дестинација правоугаоник. 445 00:26:47,060 --> 00:26:50,310 Тако да сам положио нула за извор правоугаоник 446 00:26:50,310 --> 00:26:53,426 да кажем да желим да скренем цело моје текстуру. 447 00:26:53,426 --> 00:26:55,300 Али ако је имао много текстуре у игри 448 00:26:55,300 --> 00:26:59,120 и сви су у једној великој текстуре карте који је напуњен у СДЛ као само један 449 00:26:59,120 --> 00:27:02,850 текстура, можеш користите изворни правоугаоник 450 00:27:02,850 --> 00:27:06,750 да изабере једну од мањих текстуре, један од мањих Спритес, 451 00:27:06,750 --> 00:27:09,450 од тог великог текстура карте. 452 00:27:09,450 --> 00:27:14,740 >> Дакле, опет, ја пролазу мој рендер, мој текстура, а сада дестинација. 453 00:27:14,740 --> 00:27:18,320 Ово ће бити где у прозор ће то бити извући. 454 00:27:18,320 --> 00:27:21,390 А онда, јер ја анимирање несто, морам покрет, 455 00:27:21,390 --> 00:27:25,150 Ја ћу да се ажурирање Сприте став о сваком кадру. 456 00:27:25,150 --> 00:27:30,190 Дакле, имам ову сталну под називом свитак убрзати у јединицама пиксела у секунди. 457 00:27:30,190 --> 00:27:34,320 Сада, сваки пут кад радимо покрет, оквир је само 1/60 секунде. 458 00:27:34,320 --> 00:27:36,740 Зато ћу подијелити да је 60. 459 00:27:36,740 --> 00:27:42,350 А онда, хајде да видимо, ја сам одузимањем да од и положаја. 460 00:27:42,350 --> 00:27:44,470 Зашто ја одузимањем? 461 00:27:44,470 --> 00:27:46,169 Доћи ћемо до тога за тренутак. 462 00:27:46,169 --> 00:27:48,460 Онда сам очистим своје ресурсе и програм је готово. 463 00:27:48,460 --> 00:27:49,830 >> Дакле, хајде да то. 464 00:27:49,830 --> 00:27:52,450 465 00:27:52,450 --> 00:28:03,570 Дакле, идемо у Марка СРЦС = хелло4 аниматион.ц, у реду? 466 00:28:03,570 --> 00:28:05,720 Игра. 467 00:28:05,720 --> 00:28:06,770 Eto ga. 468 00:28:06,770 --> 00:28:12,690 Дакле, имам га сцроллинг Уп Тхе прозор, што је прилично згодно. 469 00:28:12,690 --> 00:28:17,110 Али чекај, ја сам одузимањем од и позицији сваки пут. 470 00:28:17,110 --> 00:28:18,910 Шта се тамо дешава? 471 00:28:18,910 --> 00:28:24,010 Па, испоставило се да је у СДЛ, и У ствари, у већини компјутерске графике, 472 00:28:24,010 --> 00:28:28,890 порекло за координатног система је у горњем левом углу прозора. 473 00:28:28,890 --> 00:28:34,960 >> Тако је позитиван правац иде х преко вашег прозора са десне стране. 474 00:28:34,960 --> 00:28:38,110 И позитиван правац И Заправо иде доле. 475 00:28:38,110 --> 00:28:40,470 Дакле, опет, пореклу у у горњем левом делу вашег прозора, 476 00:28:40,470 --> 00:28:46,190 позитивна година правац је доле, и позитивна к је десно. 477 00:28:46,190 --> 00:28:48,770 Дакле, када сам одузети од И положај, то је 478 00:28:48,770 --> 00:28:52,640 ће да иде на негативно и правац који је горе прозора. 479 00:28:52,640 --> 00:28:55,500 Дакле, то је оно што се тамо дешава. 480 00:28:55,500 --> 00:28:56,510 Кул. 481 00:28:56,510 --> 00:28:59,240 >> Хајде да погледамо следећу датотеку. 482 00:28:59,240 --> 00:29:05,700 Овде је део од показати где смо коначно 483 00:29:05,700 --> 00:29:08,920 Гет Тхат Кс у углу прозора то би требало да затворите прозор 484 00:29:08,920 --> 00:29:10,660 na posao. 485 00:29:10,660 --> 00:29:12,800 Дакле, шта се дешава? 486 00:29:12,800 --> 00:29:17,520 Ми инитиализе СДЛ, стварају прозор, створи рендерер, убаците слику, 487 00:29:17,520 --> 00:29:19,770 створи текстуре Као што смо већ видели. 488 00:29:19,770 --> 00:29:26,850 Имамо исту дестинацију правоугаоник као и раније, исти позив да се упита текстуру. 489 00:29:26,850 --> 00:29:29,780 Али овај пут, онда смо ће поделити ширину 490 00:29:29,780 --> 00:29:33,110 а висина наше одредиште за 4. 491 00:29:33,110 --> 00:29:36,430 То само има ефекат сцалинг наш имиџ доле када 492 00:29:36,430 --> 00:29:39,884 смо га приказати у прозору са четири. 493 00:29:39,884 --> 00:29:40,800 Дакле, то је прилично згодно. 494 00:29:40,800 --> 00:29:42,770 Можемо само да смањи тек тако. 495 00:29:42,770 --> 00:29:45,970 Ми ћемо почети спрајт у центру екрана. 496 00:29:45,970 --> 00:29:49,410 И сада имамо Кс и И брзину и обојица ће почети од нуле. 497 00:29:49,410 --> 00:29:53,740 498 00:29:53,740 --> 00:29:55,880 >> Ово је погрешан фајл. 499 00:29:55,880 --> 00:29:56,380 Žao mi je. 500 00:29:56,380 --> 00:29:57,960 Дакле, то је све истина. 501 00:29:57,960 --> 00:30:00,170 То је све још у овом фајлу. 502 00:30:00,170 --> 00:30:03,210 Имамо поделу за 4 и свега. 503 00:30:03,210 --> 00:30:07,830 Дакле, овде имамо Кс и И положај за центар прозора. 504 00:30:07,830 --> 00:30:12,480 А ми му дати почетну брзину ове константне брзине која 505 00:30:12,480 --> 00:30:15,180 Верујем да је 300 пиксела по секунди. 506 00:30:15,180 --> 00:30:19,850 Сада, имамо ово Инт могли само тако бити Боолеан под називом близу тражио. 507 00:30:19,850 --> 00:30:23,970 И уместо да раде Инфините Лооп на тајмер овде, 508 00:30:23,970 --> 00:30:29,180 ћемо се анимирање као док крају није тражио. 509 00:30:29,180 --> 00:30:30,960 >> Како да обрадимо догађаје? 510 00:30:30,960 --> 00:30:35,600 Па, СДЛ редови до догађаја у буквално ред иза сцене. 511 00:30:35,600 --> 00:30:38,860 И онда сваки оквир, можемо декуеуе догађаје 512 00:30:38,860 --> 00:30:43,900 из тог реда, користећи овај позив СДЛ_ПуллЕвент. 513 00:30:43,900 --> 00:30:46,730 И опет, сигурно да читате о томе у документацији. 514 00:30:46,730 --> 00:30:50,450 Има много више детаља и много више функција можете користити са овим. 515 00:30:50,450 --> 00:30:54,750 Ми то прође адреса ове ствари, СДЛ_Евент 516 00:30:54,750 --> 00:30:56,990 да смо овде на стеку имам. 517 00:30:56,990 --> 00:30:58,840 >> Дакле, шта је СДЛ_Евент? 518 00:30:58,840 --> 00:31:02,356 Јер, СДЛ, ако погледамо у су доцументатион-- хајдемо 519 00:31:02,356 --> 00:31:07,580 види, АПИ по категорији, улаз догађаји, догађај руковање, 520 00:31:07,580 --> 00:31:15,150 можемо да погледамо број од различитих догађаја овде 521 00:31:15,150 --> 00:31:18,600 и можемо видети да је читава тона од њих. 522 00:31:18,600 --> 00:31:22,150 Па шта је ово СДЛ_Евент ствар? 523 00:31:22,150 --> 00:31:28,190 524 00:31:28,190 --> 00:31:31,107 СДЛ_Евент је синдикат. 525 00:31:31,107 --> 00:31:31,940 Вау, шта је синдикат? 526 00:31:31,940 --> 00:31:33,910 Вероватно никад чуо за то раније. 527 00:31:33,910 --> 00:31:35,610 И то је у реду. 528 00:31:35,610 --> 00:31:39,420 >> Синдикат је нешто као струцт, осим струцт 529 00:31:39,420 --> 00:31:41,960 има простора за све њени поља и меморија, 530 00:31:41,960 --> 00:31:45,060 док је синдикат има само довољно простора да стане највећи 531 00:31:45,060 --> 00:31:49,660 један од њених поља, што га значи може само похранити један од његових поља 532 00:31:49,660 --> 00:31:52,830 у време које врсте има смисла за догађаје, зар не? 533 00:31:52,830 --> 00:31:55,810 Можемо имати тастатуру догађај или прозор догађај, 534 00:31:55,810 --> 00:31:59,750 али један догађај не може бити истовремено и тастатура догађај и прозор догађај, 535 00:31:59,750 --> 00:32:05,450 па би било глупо да се простор за како оних у нашем догађаја заједнице. 536 00:32:05,450 --> 00:32:07,770 Дакле, ако сте желели да направите сопствену унију, 537 00:32:07,770 --> 00:32:10,020 тачно изгледа исто као стварање градитеља, 538 00:32:10,020 --> 00:32:14,140 осим што ми користимо кључну реч синдиката уместо струцт кључне речи. 539 00:32:14,140 --> 00:32:17,490 И запамтите, за све од ствари унутар вашег синдиката, 540 00:32:17,490 --> 00:32:22,020 стварна променљива да је синдикат може имати само једну од тих вредности 541 00:32:22,020 --> 00:32:24,780 u vreme. 542 00:32:24,780 --> 00:32:29,940 >> Дакле, како можемо рећи шта врсту догађаја ми пало са овог реда? 543 00:32:29,940 --> 00:32:33,370 Па, можемо да тестирамо за евент.типе. 544 00:32:33,370 --> 00:32:35,792 А ако је то једнако да СДЛ_Куит, знамо 545 00:32:35,792 --> 00:32:37,500 то је догађај који је генерисана када смо 546 00:32:37,500 --> 00:32:39,510 ударио тог Кс у углу прозора. 547 00:32:39,510 --> 00:32:44,270 И можемо поставити близу затражио је једнака 1. 548 00:32:44,270 --> 00:32:47,230 Све остало је само нека анимација који сте раније видели. 549 00:32:47,230 --> 00:32:52,802 Дакле, идемо напред и да ово и видите како то функционише. 550 00:32:52,802 --> 00:32:55,135 Зато ћу да куцате маке а онда СРЦС = хелло5_евентс.ц. 551 00:32:55,135 --> 00:33:03,760 552 00:33:03,760 --> 00:33:04,770 Evo ga. 553 00:33:04,770 --> 00:33:05,780 Игре. 554 00:33:05,780 --> 00:33:08,920 >> Сада, можемо видети да је заиста смањити за четири. 555 00:33:08,920 --> 00:33:10,360 И сад је поскакивала око. 556 00:33:10,360 --> 00:33:14,630 Имам детекцију колизије дешава са стране прозора 557 00:33:14,630 --> 00:33:16,840 да можемо да погледамо. 558 00:33:16,840 --> 00:33:21,190 А шта се дешава када одем да га затворим? 559 00:33:21,190 --> 00:33:22,120 То затвара. 560 00:33:22,120 --> 00:33:22,740 Фантастично. 561 00:33:22,740 --> 00:33:24,290 Ми смо добили тај догађај. 562 00:33:24,290 --> 00:33:26,630 И ми смо га руковати. 563 00:33:26,630 --> 00:33:30,730 >> Дакле, хајде да погледамо уназад у коду. 564 00:33:30,730 --> 00:33:33,020 Па како сам га добити поскакивање около? 565 00:33:33,020 --> 00:33:37,200 Не заборавите да поставим и к и И почетку на брзинама. 566 00:33:37,200 --> 00:33:39,260 А брзина је позитиван константна, тако да је 567 00:33:39,260 --> 00:33:42,680 ће се то почевши од иде доле и десно. 568 00:33:42,680 --> 00:33:45,680 569 00:33:45,680 --> 00:33:50,310 >> Сада, сваки рам, поред руковање догађаја који су се десили, можда 570 00:33:50,310 --> 00:33:57,520 Идем да открије да ли је мој вилењак покушава да изађе кроз прозор. 571 00:33:57,520 --> 00:34:03,610 Дакле, можемо да урадимо да је само проверавам к_пос са 0, и_пос 0, а затим 572 00:34:03,610 --> 00:34:07,370 такође к_пос и и_пос са ширина и висина прозора прозор. 573 00:34:07,370 --> 00:34:11,010 Обратите пажњу на сам одузимају ширина спрајт. 574 00:34:11,010 --> 00:34:14,090 А то је зато што ако нисам одузмите ширина спрајт, 575 00:34:14,090 --> 00:34:17,760 то би само проверите да ли порекло Сприте 576 00:34:17,760 --> 00:34:19,690 није ишао испред прозора. 577 00:34:19,690 --> 00:34:21,480 Али ми желимо целог ширина Сприте 578 00:34:21,480 --> 00:34:24,030 да увек буду унутар прозора и цела висина Сприте 579 00:34:24,030 --> 00:34:25,321 да увек буду унутар прозора. 580 00:34:25,321 --> 00:34:27,429 Дакле, то је оно што је одузимање је за. 581 00:34:27,429 --> 00:34:30,080 Много геометрије овде могу бити корисно да се извуче 582 00:34:30,080 --> 00:34:33,929 на папиру са координата Систем да видим шта се дешава. 583 00:34:33,929 --> 00:34:38,090 >> Дакле, ако ја сударају, само једноставно ресет позицију 584 00:34:38,090 --> 00:34:41,400 тако да се не иде из екрана. 585 00:34:41,400 --> 00:34:47,179 И ја ћу, ако одбија на једном од бочних, 586 00:34:47,179 --> 00:34:51,469 Ја ћу негирати к брзина тако да 587 00:34:51,469 --> 00:34:53,210 почиње одбијајући у другом правцу. 588 00:34:53,210 --> 00:34:56,210 Слично томе, ако погоди горњи или доњи, 589 00:34:56,210 --> 00:34:59,820 Идем да подесите брзину и једнака негативне и брзине, 590 00:34:59,820 --> 00:35:01,690 тако да ће се одбити. 591 00:35:01,690 --> 00:35:03,860 Дакле, то је само како смо то овде. 592 00:35:03,860 --> 00:35:07,560 >> И ажурирање позиције баш као што смо раније видели, 593 00:35:07,560 --> 00:35:12,510 дели са 60, јер смо Само руковање 1/60 секунде. 594 00:35:12,510 --> 00:35:15,750 А онда рендеринг, исто као и раније. 595 00:35:15,750 --> 00:35:19,810 И то је све што се дешавало ове датотеке. 596 00:35:19,810 --> 00:35:22,490 Дакле, то је како радимо догађаја. 597 00:35:22,490 --> 00:35:29,260 Главна ствар да одузме овде ово СДЛ_ПуллЕвент функција. 598 00:35:29,260 --> 00:35:33,020 И дефинитивно треба да прочитате Документација више о СДЛ_Евент 599 00:35:33,020 --> 00:35:38,630 синдикат, јер овај тип података веома, веома важно, јер смо га користити 600 00:35:38,630 --> 00:35:40,690 за све врсте догађаја. 601 00:35:40,690 --> 00:35:46,539 >> На пример, ми га користити за тастатуру догађаји, што је оно што је овај фајл за. 602 00:35:46,539 --> 00:35:47,330 Дакле, шта имамо? 603 00:35:47,330 --> 00:35:50,180 Имамо исту ствар као и раније, инитиализе СДЛ, креирали прозор, 604 00:35:50,180 --> 00:35:55,260 створити рендерер, учитати слику у меморију, креирајте текстуру. 605 00:35:55,260 --> 00:36:00,530 Опет, идемо у имају овај дест правоугаоник, 606 00:36:00,530 --> 00:36:04,890 ћемо величину слике од четири, чине га мало мања. 607 00:36:04,890 --> 00:36:08,000 Сада ћемо почети Сприте у центру екрана. 608 00:36:08,000 --> 00:36:12,090 Али овај пут, идемо да подесите почетни Кс и И брзине на нулу, 609 00:36:12,090 --> 00:36:15,140 јер је тастатура да контролишу оне. 610 00:36:15,140 --> 00:36:18,900 И поред тога, идемо у пратите ових варијабли 611 00:36:18,900 --> 00:36:20,450 горе, доле, лево и десно. 612 00:36:20,450 --> 00:36:23,090 И то ће задржати траг да ли смо 613 00:36:23,090 --> 00:36:27,370 притисну тастере на тастатури да одговарају горе, доле, лево, 614 00:36:27,370 --> 00:36:28,460 и десно. 615 00:36:28,460 --> 00:36:32,440 >> Дакле, ово је врста фенси јер можемо користити В, А, С, 616 00:36:32,440 --> 00:36:35,480 Д овде, или стварни стрелицама. 617 00:36:35,480 --> 00:36:38,590 Видећемо да је у пар секунди. 618 00:36:38,590 --> 00:36:41,140 Дакле, идемо да обрадимо догађај баш као и пре. 619 00:36:41,140 --> 00:36:42,530 Ми повуците догађај. 620 00:36:42,530 --> 00:36:45,840 Али сада ћемо укључите тип догађаја. 621 00:36:45,840 --> 00:36:47,710 Ако је СДЛ_Куит смо ће поставити близу 622 00:36:47,710 --> 00:36:49,990 тражи да један, баш као и пре. 623 00:36:49,990 --> 00:36:52,315 То управља к у угао прозора, 624 00:36:52,315 --> 00:36:55,050 тако да је наш прозор у ствари затвара. 625 00:36:55,050 --> 00:37:00,110 >> У супротном, ако добијете СДЛ кључ доле догађај, што значи да притисне тастер, 626 00:37:00,110 --> 00:37:04,470 онда шта ћемо да урадимо је да смо да укључите ову ствар овде, 627 00:37:04,470 --> 00:37:11,370 која меанс-- тако евент.кеи значи третирати наша манифестација унију, 628 00:37:11,370 --> 00:37:15,490 иди и донеси кључ Структура догађај у њему. 629 00:37:15,490 --> 00:37:18,810 Тако испада да је ово Унија је кључни догађај структура. 630 00:37:18,810 --> 00:37:22,820 А онда идите на тастеру Структура манифестације његово поље 631 00:37:22,820 --> 00:37:26,140 зове кеисим а затим Сцанцоде. 632 00:37:26,140 --> 00:37:29,480 И опет, дефинитивно прочитајте документација о томе. 633 00:37:29,480 --> 00:37:31,220 Кључна реч улази веома интересантно. 634 00:37:31,220 --> 00:37:34,020 Можете добити кодове скенирања или тастер кодове. 635 00:37:34,020 --> 00:37:38,590 И то је мало суптилно, али документација је прилично добра. 636 00:37:38,590 --> 00:37:43,380 >> Дакле, ако видимо скенирање кода за наш притисак на тастер бити В или горе, 637 00:37:43,380 --> 00:37:45,450 ћемо поставити једнак 1. 638 00:37:45,450 --> 00:37:47,240 И онда цемо направити паузу од тог прекидача. 639 00:37:47,240 --> 00:37:52,980 Ако је А или лево, поставили смо оставили на 1 ет итд, итд, за доле и десно. 640 00:37:52,980 --> 00:37:57,080 Сада, у овом спољашњем свитцх, ако видимо кључ до догађај, 641 00:37:57,080 --> 00:38:00,730 То значи да смо пуштени кључ а ми не да га притиском. 642 00:38:00,730 --> 00:38:05,380 Зато ћу да кажем горе једнако 0, лево једнако 0, доле једнако 0, у праву 643 00:38:05,380 --> 00:38:08,260 једнако 0, и тако даље. 644 00:38:08,260 --> 00:38:12,070 >> А погледајте имамо у сваки од њих два случаја пут одмах поред једни другима 645 00:38:12,070 --> 00:38:14,490 без посебном шифром за прво случају, што 646 00:38:14,490 --> 00:38:18,180 значи да ли је и С или доле овде, 647 00:38:18,180 --> 00:38:20,520 да ће да изврши овај код. 648 00:38:20,520 --> 00:38:22,090 Дакле, то је прилично згодно. 649 00:38:22,090 --> 00:38:24,830 То спречава нас да да учине више услови и ИФС и ствари 650 00:38:24,830 --> 00:38:26,980 тако. 651 00:38:26,980 --> 00:38:29,420 >> Тако ћемо одредите брзину. 652 00:38:29,420 --> 00:38:31,020 Поставили смо брзину на 0. 653 00:38:31,020 --> 00:38:33,910 Онда, ако се притисне горе а не доле, онда смо 654 00:38:33,910 --> 00:38:37,450 поставите брзину и на негативне брзину. 655 00:38:37,450 --> 00:38:42,930 Запамтите негативан, јер је негативна ии правац је горе. 656 00:38:42,930 --> 00:38:45,540 А позитивна година правац је доле. 657 00:38:45,540 --> 00:38:47,510 Ако се притисне а не горе, онда смо 658 00:38:47,510 --> 00:38:53,860 ће га поставити на позитивном брзину, што значи иде доле на екрану. 659 00:38:53,860 --> 00:38:55,460 Иста ствар је и са леве и десне стране. 660 00:38:55,460 --> 00:38:58,200 >> А онда ћемо ажурирати позиције као и пре. 661 00:38:58,200 --> 00:39:00,740 Ми ћемо да урадимо судар детекција са границама, 662 00:39:00,740 --> 00:39:04,290 али нећемо да ресетује се брзина, јер је брзина само 663 00:39:04,290 --> 00:39:06,780 контролисан од стране тастатуре. 664 00:39:06,780 --> 00:39:11,230 Али, ми ћемо ресетовати позиције да остане у прозору. 665 00:39:11,230 --> 00:39:14,400 И ми ћемо да подесите позиције у струцт 666 00:39:14,400 --> 00:39:17,400 а онда све рендеринг ствари од раније. 667 00:39:17,400 --> 00:39:20,750 Дакле, хајде да видимо шта ради. 668 00:39:20,750 --> 00:39:25,460 Тако да СРЦС-- да видимо, ово је хелло6_кеибоард.ц. 669 00:39:25,460 --> 00:39:38,140 670 00:39:38,140 --> 00:39:38,820 >> O, ne. 671 00:39:38,820 --> 00:39:40,150 Тако смо добили неке упозорења овде. 672 00:39:40,150 --> 00:39:43,840 И то је, просто речено, нисмо проверите за сваку могућу врсту 673 00:39:43,840 --> 00:39:45,610 догађаја. 674 00:39:45,610 --> 00:39:49,470 То је у реду, јер има 236 њих или тако нешто. 675 00:39:49,470 --> 00:39:51,760 Зато ћу игнорисати те упозорења. 676 00:39:51,760 --> 00:39:53,530 То је увек састављен у реду. 677 00:39:53,530 --> 00:39:56,100 Зато ћу да играм игру. 678 00:39:56,100 --> 00:39:57,590 Не помера се. 679 00:39:57,590 --> 00:40:04,150 Али сада, када сам масх на тастатури, Могу да урадим нешто ВАСД кретање овде, 680 00:40:04,150 --> 00:40:06,870 Ја користим своје тастере са стрелицама као добро. 681 00:40:06,870 --> 00:40:10,070 И приметио, иако сам притиском на десни сада, 682 00:40:10,070 --> 00:40:13,804 не иде кроз прозор, јер сам га ресетовати на сваком раму. 683 00:40:13,804 --> 00:40:14,720 Дакле, то је прилично згодно. 684 00:40:14,720 --> 00:40:19,420 Можете замислити креће Марио са неке стрелице или тако нешто. 685 00:40:19,420 --> 00:40:22,880 И да, Кс ради. 686 00:40:22,880 --> 00:40:26,900 >> Дакле, коначна фајл идемо да погледате, хеллов7_моусе. 687 00:40:26,900 --> 00:40:29,600 Ово је о томе да улаз миша. 688 00:40:29,600 --> 00:40:34,790 Дакле, у овоме смо увоз из математике заглавље, 689 00:40:34,790 --> 00:40:38,100 јер ћемо имати мало математике овде. 690 00:40:38,100 --> 00:40:45,260 Исто старо, исто старе ствари, дестинација, иста стара, видио. 691 00:40:45,260 --> 00:40:46,910 Па, ово је интересантно. 692 00:40:46,910 --> 00:40:51,730 Дакле, вратили смо се само провера за СДЛ отказ догађај. 693 00:40:51,730 --> 00:40:52,460 Zašto je to? 694 00:40:52,460 --> 00:40:55,110 Дакле, можете добити улаз миша са догађајима. 695 00:40:55,110 --> 00:40:57,670 Као када се миш помера, добијате догађај за то. 696 00:40:57,670 --> 00:41:00,520 Када се притисне тастер миша, можете добити догађај за то. 697 00:41:00,520 --> 00:41:05,760 >> Али постоји још један, помало једноставније можда, АПИ за добијање улаз миша. 698 00:41:05,760 --> 00:41:09,500 И то је једноставно СДЛ Гет миш држава. 699 00:41:09,500 --> 00:41:14,370 Дакле, имам инт за Кс и година за положај курсора. 700 00:41:14,370 --> 00:41:18,910 Ја га прећи на СДЛ_ГетМоусеСтате, који поставља ово. 701 00:41:18,910 --> 00:41:22,200 А ово је позиција у координатном систему прозора. 702 00:41:22,200 --> 00:41:25,520 Дакле, ако је маса у горњем левом углу прозора, да би 0, 0. 703 00:41:25,520 --> 00:41:28,040 704 00:41:28,040 --> 00:41:33,380 >> Сада, шта ћу да урадим је да одлазим да урадите мало вектора математике. 705 00:41:33,380 --> 00:41:36,910 Кладим се да сте мислили да не би види да у ЦС50, али ту је. 706 00:41:36,910 --> 00:41:40,720 Ја ћу да урадим нешто вектор математика да се вектор 707 00:41:40,720 --> 00:41:43,840 са слике у курсора. 708 00:41:43,840 --> 00:41:53,280 И зашто морам ово одузимање овде? 709 00:41:53,280 --> 00:42:01,350 Па, ако сам ја користио дест тако .-- Морам да преведе Моусе Кс 710 00:42:01,350 --> 00:42:05,166 и и за половину ширине и висине слике, 711 00:42:05,166 --> 00:42:08,040 јер желим центру слика да иде у правцу миша, 712 00:42:08,040 --> 00:42:10,160 не порекло слике. 713 00:42:10,160 --> 00:42:15,650 >> Дакле, то је само да се уверите да говорим о центру слике овде. 714 00:42:15,650 --> 00:42:19,510 Онда смо добили Делта Кс и И, који је разлика од циља 715 00:42:19,510 --> 00:42:23,430 на стварног положаја слике. 716 00:42:23,430 --> 00:42:25,690 И онда можемо добити дистанцира овде, који 717 00:42:25,690 --> 00:42:29,140 ће бити Питагорина теорема, квадратни корен од к 718 00:42:29,140 --> 00:42:32,720 тимес х плус и пута год. 719 00:42:32,720 --> 00:42:38,400 >> Сада да спречи јиттер, и ја могу показати ви шта то ради ако не урадим ово, 720 00:42:38,400 --> 00:42:45,830 ако растојање између курсора и слика центар је мањи од пет, 721 00:42:45,830 --> 00:42:48,730 Ја само нећу да померите слику. 722 00:42:48,730 --> 00:42:52,900 У супротном, поставили смо брзину. 723 00:42:52,900 --> 00:42:55,960 Ми смо га поставили тако да брзина ће увек бити константна. 724 00:42:55,960 --> 00:42:58,770 И нето резултат свега ово математика је да слике 725 00:42:58,770 --> 00:43:01,660 ће се кретати ка курсора. 726 00:43:01,660 --> 00:43:08,470 >> Сада, испада да СДЛ_ГетМоусеСтате, 727 00:43:08,470 --> 00:43:14,490 Поред постављања Кс и И аргументи овде, 728 00:43:14,490 --> 00:43:21,340 такође враћа инт која одговара са стањем тастера миша. 729 00:43:21,340 --> 00:43:24,600 Тако да не могу то да прочитам директно, али можемо 730 00:43:24,600 --> 00:43:29,090 користите ове макрое, један битовима оператер, а не да се страшно, 731 00:43:29,090 --> 00:43:30,650 само битовима и. 732 00:43:30,650 --> 00:43:38,320 Зато ми кажемо дугмад, што је резултат наше СДЛ_ГетМоусеСтате, ако је то 733 00:43:38,320 --> 00:43:43,990 и битовима и, овај макро Овде, СДЛ_БУТТОН_ЛЕФТ. 734 00:43:43,990 --> 00:43:47,680 >> Дакле, ово ће једноставно решити да битмапи да одговара 735 00:43:47,680 --> 00:43:51,090 на лево дугме миша под притиском. 736 00:43:51,090 --> 00:43:55,470 И тако ако битовима и јавља се и то је 737 00:43:55,470 --> 00:43:59,340 нуле, што значи лево дугме је притиснуто, 738 00:43:59,340 --> 00:44:04,320 онда ћемо заправо да се негира и Кс и И брзине, 739 00:44:04,320 --> 00:44:06,700 који ће само направити слику бег. 740 00:44:06,700 --> 00:44:07,980 Упдате позиције. 741 00:44:07,980 --> 00:44:10,920 Сударе детекције, видио све раније, рендеринг, у реду. 742 00:44:10,920 --> 00:44:11,510 Хајде да га. 743 00:44:11,510 --> 00:44:14,200 744 00:44:14,200 --> 00:44:16,050 Дакле, имаш да срцс = хелло7_моусе.ц. 745 00:44:16,050 --> 00:44:21,720 746 00:44:21,720 --> 00:44:22,220 Veliki. 747 00:44:22,220 --> 00:44:23,490 Нема грешке. 748 00:44:23,490 --> 00:44:24,900 И игра. 749 00:44:24,900 --> 00:44:26,440 >> Дакле, овде имам миша. 750 00:44:26,440 --> 00:44:29,000 А слика је заиста јурим миша. 751 00:44:29,000 --> 00:44:33,140 Сада, у игри сте се, можда ово је као непријатељску Цхасинг 752 00:44:33,140 --> 00:44:35,240 твоја мала лик или било шта друго. 753 00:44:35,240 --> 00:44:37,440 Али овде имамо слика јури миша. 754 00:44:37,440 --> 00:44:41,000 И када кликнем, миш почиње јури слику 755 00:44:41,000 --> 00:44:42,860 па је слика бежећи од миша. 756 00:44:42,860 --> 00:44:43,810 Дакле, то је баш кул. 757 00:44:43,810 --> 00:44:47,770 И обавештење опет, ту је још судара детекција овде. 758 00:44:47,770 --> 00:44:53,930 >> Тако да је коначни мало Демо сам поставио овде. 759 00:44:53,930 --> 00:44:58,870 И хајде да погледамо још једну ствар. 760 00:44:58,870 --> 00:45:02,970 Тако се овде, поменуо сам ову јиттер. 761 00:45:02,970 --> 00:45:05,000 U redu. 762 00:45:05,000 --> 00:45:12,890 Дакле, ако растојање мање од пет пиксела, Ја сам постављање Кс и И брзину на нулу. 763 00:45:12,890 --> 00:45:15,960 Шта се дешава ако се ослободимо тога? 764 00:45:15,960 --> 00:45:19,070 Зато ћу само ово. 765 00:45:19,070 --> 00:45:23,820 766 00:45:23,820 --> 00:45:30,150 Молим вас, опростите овај стравичан стил, али смо коментарисали да правилно кода. 767 00:45:30,150 --> 00:45:38,080 Зато ћу спасити да и урадите иста команда од раније да га направи. 768 00:45:38,080 --> 00:45:38,785 >> U redu. 769 00:45:38,785 --> 00:45:39,660 И сад шта се дешава? 770 00:45:39,660 --> 00:45:43,260 771 00:45:43,260 --> 00:45:43,760 Dobro. 772 00:45:43,760 --> 00:45:45,801 Још увек пратећи миш као и раније, 773 00:45:45,801 --> 00:45:49,310 али када дођемо до миша, имамо ову бруто јиттер. 774 00:45:49,310 --> 00:45:50,320 Шта се тамо дешава? 775 00:45:50,320 --> 00:45:52,600 Па, у нашем вектор математика, запамтите да смо 776 00:45:52,600 --> 00:45:57,540 узимајући удаљеност између цурсор и центар слике? 777 00:45:57,540 --> 00:46:00,710 Па, као да приступи 0, почнемо да се 778 00:46:00,710 --> 00:46:06,280 као ову врсту лудог понашања где је слика некако 779 00:46:06,280 --> 00:46:08,910 као осцилирају око курсора. 780 00:46:08,910 --> 00:46:12,000 И то је стварање овог јиттер. 781 00:46:12,000 --> 00:46:13,020 И то је стварно ружно. 782 00:46:13,020 --> 00:46:15,103 И вероватно не желите да ваши игре то радити, 783 00:46:15,103 --> 00:46:17,350 осим ако је нека врста специјалног ефекта. 784 00:46:17,350 --> 00:46:21,960 >> Зато имамо само овај произвољно 785 00:46:21,960 --> 00:46:27,150 одсечен од пет пиксела, где ми кажемо ако је у року од пет пиксела, добро смо. 786 00:46:27,150 --> 00:46:29,560 Не морамо више да померите слику. 787 00:46:29,560 --> 00:46:32,260 Дакле, то је оно што се тамо дешава. 788 00:46:32,260 --> 00:46:37,390 789 00:46:37,390 --> 00:46:40,870 >> Дакле, то је прилично је много. 790 00:46:40,870 --> 00:46:44,390 Сада знате како да креирате прозор, учитати слику, 791 00:46:44,390 --> 00:46:49,330 нацртајте слику на прозору, да улаз тастатура, миш се улаз, 792 00:46:49,330 --> 00:46:52,190 постоји гомила другог улаз да не би 793 00:46:52,190 --> 00:46:56,070 знате како да добијете ако само провести Неколико минута лоокинг ат документације. 794 00:46:56,070 --> 00:46:59,670 Дакле, ви заправо имају доста Неколико алата на располагању сада 795 00:46:59,670 --> 00:47:01,650 да напише пуноправно игру. 796 00:47:01,650 --> 00:47:05,030 >> Сада, свака утакмица треба мало звук, али аудио документација 797 00:47:05,030 --> 00:47:06,460 је такође прилично добро. 798 00:47:06,460 --> 00:47:09,200 И ја сам спреман да се кладим да ако сте разумели све ствари 799 00:47:09,200 --> 00:47:14,560 причали смо о данас са слике, и површине, 800 00:47:14,560 --> 00:47:18,370 прозори, и онда све схватите аудио АПИ није 801 00:47:18,370 --> 00:47:21,170 ће бити тако лоше. 802 00:47:21,170 --> 00:47:27,420 Тако Радујем се видимо шта да креирате са СДЛ. 803 00:47:27,420 --> 00:47:31,595