>> ROB BOWDEN: Прывітанне.
Я Роб.
Хочаце ведаць, як рэалізаваць гэтую гульню?
Ну, давайце вырвацца рашэнне персанал.
>> Такім чынам, давайце спачатку апусціўшы галаву да ініцыялізацыі функцыі, якія мы распавядалі вам у
рэалізаваць у першую чаргу.
Першы, які мы будзем глядзець на яго з'яўляецца ініцыялізацыі вясло.
Добра, так што не забудзьцеся, што мы хочам, каб вясло, каб быць сапраўды па цэнтру ў
вось х.
Такім чынам, мы павінны высветліць, дзе, што павінен ісці.
>> Улічваючы шырыню дошкі - якія таксама хэш пэўны наверсе -
мы павінны адняць з шырыні вясло і падзяліць на 2, так што
цэнтр вяслом у цэнтр дошкі.
Памятаеце, што х-каардыната ставіцца да верхні левы кут вёслы,
і так што гэта дакладна, дзе мы хочам, каб гэта было.
У-каардынатаў не мае значэння як шмат, таму што мы можам размясціць
гэта там, дзе мы хочам.
Такім чынам, мы асобніка вясло, пакладзем колер чорны, пакладзем запоўніць да сапраўднага
так што гэта запоўнена ў прастакутнік, і мы затым дадаць яго да акна і назад
вясло.
І гэта ўсё для ініцыялізацыі вясло.
>> Гэта збіраецца быць падобныя для ініцыялізацыі табло.
Такім чынам, мы збіраемся прысвоіць пазнаку, мы збіраемся ўсталяваць колер для
светла-шэры - вы можаце выбраць тое, што вы хочаце - мы збіраемся ўсталяваць шрыфт
без засечак 48 -
таксама можа выбраць тое, што вы хочаце -
мы дадамо яго ў акно.
Зараз гэта адправіць назад на самай справе не неабходна, гэта проста ў выпадку, калі нешта
яшчэ, што перакрываць этыкетку.
Тады, калі мы выкарыстоўваем Выяўленне сутыкнення, Выяўленне сутыкнення выявіць іншы
рэч, перш чым ён выяўляе пазнаку.
Але гэта сапраўды не павінна паўплываць на нам у гэтай праграме.
>> Нарэшце, у нас ёсць гэты Update табло функцыя, якую мы напісалі.
Так што давайце зірнем на гэта.
Цяпер, тут мы бачым нешта, што гэта амаль ідэнтычна таго, што
мы бачылі ў label.c.
Таму ў нас ёсць ярлык -
персанаж буфер 12 сімвалаў, што цалкам дастаткова, каб справіцца з любой
цэлы лік, станоўчым або адмоўным.
Затым мы выкарыстоўваем Sprintf скапіяваць паказвае ў гэтым буферы.
Так з гэтага ўтрымлівае радок, якая прадстаўляе лік кропак.
>> Нарэшце, мы ўсталяваць пазнаку у гэтым радку.
А потым мы павінны засяродзіць этыкетку у выпадку мы пайшлі з дзевяці да 10
паказвае і мы перайшлі яе.
Так мы вылічаем х і у-каардынаты з лэйблам, які будзе
атрымаць шырыню і вышыню з акна.
Хоць, мы маглі б таксама проста выкарыстоўваць канстанты Шырыня і Вышыня хэш
вызначаецца наверсе.
Мы таксама атрымліваем шырыню і вышыню этыкеткі і падзяліць
што на 2 да цэнтра.
А потым мы выкарыстоўваем паказаны Месца на самай справе пакласці яго ў гэтым месцы.
Дык вось яно што для ініцыялізацыі табло.
>> ОК.
Так ініцыялізацыі мяч будзе вельмі падобны для ініцыялізацыі вёслы, а таксама.
Мы бачым тут, што мы выкарыстоўваем newgoval для таго, каб стварыць новы мяч.
І вось мы выкарыстоўваем 2 разы радыус як шырыня мяча, і два
разы радыус як Вышыня мяча.
Цяпер і для newgoval, х і у-каардынату, што мы перадаем у збіраецца
для абазначэння левым верхнім куце мяч, які на самай справе
па-за самой мяч.
Так што для таго, каб атрымаць мяч сапраўды сканцэнтраваны ў савеце, мы павінны перадаць
падзелены шырыня на 2 для цэнтра, і затым адняць з радыус націсніце
фактычны цэнтр шара ў цэнтр дошкі.
І мы робім адно і тое ж на восі ардынат, за выключэннем выкарыстання
Вышыня замест шырыні.
>> Так што змяшчае мяч у цэнтры.
І гэта стварае асобнік мяч, усталюйце колер чорны, запоўніць ў шары,
затым, нарэшце, дадаць яго ў вокны і вярнуць яго.
І гэта ўсё для ініцыялізацыі мяч.
>> А цяпер давайце зірнем на ініцыялізацыі цэгла, які з'яўляецца крыху больш
складана, але гэта даволі падобны на ініцыялізацыі вёслы.
Цяпер, па-першае, мы павінны высветліць, шырыня кожнага цэглы.
Памятаеце, што ў нас ёсць пастаянная назвай званкі які вызначае
Лік слупкоў цэглы што ў нас ёсць.
Так, мы збіраемся вызначыць шырыню з адной цэглы, прымаючы шырыню
ўсёй плаце, адымаючы з памеру нашага разрыву -
які хэш вызначаецца наверсе і ставіцца да ліку пікселяў, якія
павінна быць у межах кожнага цэглы -
і такім чынам мы будзем мець у агульнай складанасці раз разрыў называе пустыя пікселі ў
однорядные.
І, што таксама будзе ставіцца да некаторых пустым пікселяў злева і справа ад
калонку і правую калонку цэгла пакінулі.
>> Так адняць гэтыя пустыя пікселяў пакідае нас з колькасцю пікселяў, што
цагліна фактычна выкарыстоўваючы.
А потым мы дзелім на званкі, каб атрымаць лік пікселяў на цэглу.
Дык вось мы вызначаем масіў, проста вызначае колеру, якія мы хочам для кожнага
шэраг цэглы.
Калі б мы мелі больш шэрагаў цэглы, чым Колеру, якія мы, названыя, мы ўбачым
што мы проста пятля вакол і выкарыстоўваць чырвоны зноў, а затым аранжавы і
жоўты і так далей.
>> Так што, як р-ўсталяваць спецыфікацыі намёкамі, мы збіраецца цыкле па ўсіх радках і
калоны цэглы.
Але перш, чым мы перабіраем слупкоў, мы бачым, што мы паказаўшы
у становішча кожнага цэглы у гэтым канкрэтным шэрагу.
Мы маглі б таксама перайсці гэта ў секунду цыкл, але тады мы б проста
рабіць разлік зноў і зноў зноў, калі мы не павінны.
>> Такім чынам, у становішча цэглы збіраецца быць маржа, якая з'яўляецца хэш
вызначаецца наверсе і проста ставіцца да Прастора паміж верхняй частцы дошкі і
пачатак ўсё цэглу.
І мы збіраемся дадаць да таго, што шэраг што мы знаходзімся на кратнай вышыні
індывідуальны цэгла плюс разрыў гэта значыць паміж кожным цэглай.
Так што гэта таксама вертыкальная Разрыў паміж кожнага цэглы.
Так, што дае нам каардынаты ў з цэглы.
>> Дык вось мы збіраемся вылічыць х-каардынату цэглы.
Цяпер у нас ёсць разрыў, падзелены на 2, так як, памятаю раней, я сказаў, што ў
левы бок праўлення, мы збіраемся каб пакінуць трохі месцы.
Так разрыў падзяліць на 2 з'яўляецца тое, што прастора.
А потым мы дадаем да таго, што калонка што мы знаходзімся на час шырыня плюс
разрыў, дзе шырыня аб'ём прасторы што адзін цагліна займае і
то разрыў прастору паміж кожным цэглай.
Так што разлічвае каардынаты х з цэглы.
>> Цяпер нам трэба стварыць асобнік цэгла, улічваючы, што х і у-каардынатаў
выкарыстоўваючы шырыню, што мы, разлічанае для кожнага Вышыня цэгла, і перапынак, які з'яўляецца
хэш пэўны наверсе.
Мы ўсталёўваем колер цэглы.
Звярніце ўвагу, што мы выкарыстоўваем нашу колеру масіў і мы перадаем у радку, якія былі
на сучаснай кветак NUM, які збіраецца зрабіць нам абгарнуць назад да чырвоных, калі мы
ёсць больш радкоў, чым кветак.
Нарэшце, мы запоўнім ў цэгле колер і дадаць яго да акна.
>> І гэта ўсё.
Такім чынам, вось ён для ўсіх нашых метады ініцыялізацыі.
Цяпер мы павінны глядзець на той час цыкл, які вы павінны былі запоўніць цалі
І вось мы бачым, што гэта наш у той час як цыкл, які будзе працягвацца да
гульня скончана, якія альбо сродкі мы бяжыце з жыцця ці
мы бяжым з цэглы.
>> Так першае, што мы павінны з'яўляецца Пачакайце Click.
Так што гульня чакае нас на самай справе націсніце, перш чым мяч пачынае рухацца.
А потым мы збіраемся для памяншэння жыццё.
Так што, калі ў нас было тры жыцці, зараз мы да двух жыццяў, мы з дапамогай нашага
Трэці жыццё.
Мы збіраемся засяродзіць мяч.
Так што цяпер, гэта не на самай справе адбываецца, каб дапамагчы нам у першы ж жыцці мы граем
так як мяч ужо збіраецца былі сканцэнтраваны ад таго, калі мы
асобнік яго.
Але мы бачым, калі мы ў канчатковым выніку страты жыццё і завесы таму вакол, то мы
захочуць цэнтравання мяч ад у ніжняй частцы дошкі да
цэнтр.
>> Такім чынам, цяпер тут мы павінны згенераваць х хуткасць шара.
І, у адпаведнасці з спецыфікацыяй, мы выкарыстоўваем г рандаў 48, каб згенераваць выпадковы лік
пазначыць хуткасць.
Мы дадаем адзін да таго, што так як мы проста хочаце хуткасць у дыяпазоне ад аднаго
на два замест нуля да адзінкі.
Нарэшце, мы выкарыстоўваем г рандаў 48 раз у для таго, каб вызначыць, ці сапраўды мяч
збіраецца рухацца налева або направа, каб пачаць.
>> Так г рандаў 48 вяртае выпадковы лік паміж нулём і адзінкай, і так, задаючы
калі гэта менш, чым 0,5, у нас ёсць 50 50 верагоднасць пераключэння хуткасці
мяч, будзе адмоўным.
Нарэшце, пакладзем вертыкальную хуткасць мяч, каб быць проста некаторая канстанта.
Мы выбіраем тры.
І зараз у нас ёсць яшчэ адзін цыкл.
>> Так што гэта ўнутраны цыкл з'яўляецца будзе працягвацца.
Звярніце ўвагу, тут, у той час як цэгла больш за нуль -
таму, калі мы вычарпалі цэглы, мы выйграў гульню, і мы можам
вырвацца з гэтага цыкла -
і ўсё Атрымаць у Баль менш вышыні мінус 2 разы радыус.
Так што гэта прызнанне, калі Мяч адбываецца прайсці вяслом, у
гэтым выпадку вы страцілі жыццё.
>> Зазірнуўшы ўнутр гэтага цыкл мы маем праверка на падзеі мышы.
Такім чынам, калі ёсць падзея мышы, што азначае, што мы хочам, каб праверыць,
Ці мышы быў перамешчаны і, калі мышы быў перамешчаны, мы хочам мець
вясло ў нагу з дапамогай мышы.
Такім чынам, каб зрабіць гэта, мы вылічаем новы Становішча лопасці, якая збіраецца
каб захапіць пазіцыю мышы - якая захоплівае становішча з дапамогай
Падзея, якое мы прайшлі -
а затым мы збіраемся адняць падзяліць вясло шырыня на 2, так што
вясло застаецца ў цэнтры мышы замест левай баку лопасці
застаючыся па цэнтры.
>> Так што цяпер мы таксама хочам быць упэўненыя, што мы не ідуць па левым боку або направа
бок платы.
І вось мы толькі праверкі, калі вясло б ад левага боку
дошка, проста прытрымлівацца гэта да левай баку.
І вось мы правяраем, калі вясло б над правага боку
дошка, проста прытрымлівацца яго на правай баку.
І, нарэшце, мы на самай справе ўсталяваць размяшчэнне вёслы.
>> Цяпер, калі б не быў рух мышы, гэта азначае, што мы збіраемся
хочаце перамясціць мяч.
І так у нас ужо ёсць х і ў хуткасць шарыка
і таму мы яго перамясціць.
Але цяпер мы хочам, каб выявіць пара рэчаў.
Дык вось мы выяўлення, калі мы патрапілі альбо левая ці правая бок
дошка, мы хочам, каб мяч, каб падскочыць.
Дык вось, у гэтым выпадку, мы ўсталёўваем х хуткасць да адмоўнага х хуткасці.
>> Калі мяч трапіў у верхняй частцы платы, то мы таксама хочам мяч адмоў.
Але цяпер мы хочам змяніць у хуткасць.
Звярніце ўвагу, мы не маем ўмова для Мяч, які крануўся дна
дошка, так як гэта быў ужо захоплены тут, у гэтым час цыклу.
>> Нарэшце, мы хочам, каб выявіць некаторыя сутыкнення, дзе, калі мяч трапіў
альбо вясло ці цэгла, мы хочам зрабіць некаторыя спецыяльныя тэматычныя рэчы.
Так што, калі адбылося сутыкненне, у якім аб'екты выпадку не будзе мець законнай, то,
калі аб'ект трапіў вясло, мы б проста хачу, каб падскочыць шар.
І тут, акрамя таго, мы ўсталяваць месцазнаходжанне мяч ледзь вышэй вяслом.
Звярніце ўвагу, мы бярэм х становішча мяч і проста паўторнае выкарыстанне, што.
Але тут мы атрымліваем пазіцыю ў вёслы і перамяшчэнне мяча
вышэй лопасці.
>> Гэта асаблівы выпадак, так што мяч не трапіў у вясло, і тады,
перш чым гэта ў стане рухацца ад вёслы, іншы цыкл праходзіць вакол і
ён лічыць, што гэта ўсё яшчэ на панэлі і так што хуткасць у атрымлівае набор назад
адмоўны, а затым мяч толькі збольшага палачак падскокваючы на ​​вёслы.
Так што, калі мы не трапіў вясло, то мы таксама хочам, каб праверыць
калі мы патрапілі ў цэглу.
І так гэта тое, як мы можам праверыць каб убачыць, калі мы патрапілі ў цэглу.
>> Мы павінны праверыць гэта, таму што мы можам фактычна трапіў у этыкетку і мы
не хачу, каб выдаліць пазнаку.
Так што, калі мы трапілі цэгла, мы можам выдаліць, што цэгла з акна, декремента
наш кол-у цаглін, павялічыць наш лік кропак, і зараз мы павінны
абнавіць табло, якое ў дакладнасці гэтак жа, як мы бачылі раней, калі мы ўбачылі
ініцыялізацыі табло.
Але цяпер мы проста абнаўлення табло, так як мы змяніліся
лік кропак.
І цяпер яно павінна адлюстроўваць, што мы трапілі яшчэ адзін перапынак.
>> І, нарэшце, калі мы трапілі цэгла мы таксама хочам, каб падскочыць.
І ў рэшце рэшт, мы робім паўзу, каб пераканацца, што Мяч не рухаецца супер хуткі, і мы
можа на самай справе ўдарыў яго з нашым вёслы.
І гэта ў значнай ступені ён.
Так што цяпер мы б вяртанне да пачатку цыкла ў пачатак гэта ў той час як цыкл і будзе працягвацца да
альбо мы страціце жыццё або мы бяжым з цэглы.
>> Што адбудзецца, калі мы страціце жыццё?
Тады мы збіраемся выйсці з гэтага час цыкл, і мы ўбачым, будзе вяртацца да
да верхняй часткі вонкавай час цыклу.
У такім выпадку, мы збіраемся ажыццяўляюць гэта наладзіць зноў.
І гэта наладзіць будзе мець нас чакаць за клік, паменшыць наш нумар
жыццяў, цэнтравання мяч, пералічыць х і ў хуткасць і
затым аднавіць гульню.
>> І так, што будзе працягваць, пакуль альбо цагліна заканчвае тым, што менш, чым
або роўна нуля -
у гэтым выпадку мы выйгралі гульню -
або жыццё менш за нуль, у якіх выпадак мы прайгралі.
Так, аднойчы, што гэта так, мы вырвацца гэтага час цыклу, і мы дасягнем тут
дзе мы збіраемся чакаць клік перад выхадам з гульні так, каб
Гульня не проста неадкладна зачыніць на нас.
І, нарэшце, мы закрыем вокны і ўсё тут.
Мяне клічуць Боб, і гэта было адрыву.