Tip:
Highlight text to annotate it
X
>> DAVID Malan: Hebu kuandika mpango kuwashirikisha dirisha na mduara na
mzunguko bouncing na kurudi mbali kushoto na kulia
kando ya dirisha hiyo.
Kwa kufanya hivyo, hebu kutumia Stanford Portable Library, na hebu kwanza
ni pamoja na gevents.h ili tuweze kusikiliza kwa harakati za panya.
Hebu basi ni pamoja na gobjects.h ili tunaweza kutangaza mambo kama ovals au
duru, kwa kweli.
Na basi ni pamoja na gwindow.h ili tuna dirisha graphical kwa
kila kitu.
>> Hebu kutangaza kuu katika njia ya kawaida.
Na hebu sasa kutangaza na instantiate au kuunda kwamba dirisha, GWindow -
na tutaweza wito dirisha kutofautiana -
anapata newGWindow.
Na tutaweza kiholela kufanya hivyo 320 pixels na 240 saizi.
>> Hebu ijayo instantiate mduara.
Lakini instantiate mzunguko huu, sisi haja ya kufanya kazi kidogo zaidi.
Hasa, hebu kujaza mzunguko ili jambo nzima ni
nyeusi na si tu muhtasari yake.
GOval -
tutaweza kuiita mduara -
anapata newGOval.
Tutaweza kuweka mviringo hii 0, 110, na sisi itabidi kufanya mviringo 20 saizi upana na
20 saizi high - kwa maneno mengine, mduara wa 20 au radius ya 10.
>> Hebu sasa kuweka rangi ya mzunguko kwamba kuwa quote, unquote, "nyeusi." Hebu
sasa kuweka kujazwa na kubainisha kweli.
Na sasa mwisho, hebu kuongeza mzunguko wa dirisha kama ifuatavyo, ambapo
mwisho ni aliongeza kwa zamani.
>> Hebu sasa kutangaza mara mbili.
Tutaweza kuiita kasi.
Na kwa kiasi fulani kiholela, hebu sema kasi ya mzunguko hii itakuwa
2.0, kwa maneno mengine, 2 saizi kwa kila kitengo cha wakati.
Na sasa hebu kwa makusudi kutumika usio kitanzi.
>> Hivyo jinsi ya kufanya mzunguko bounce na kurudi?
Naam hebu kudhani ndani ya kitanzi hii kwamba kwa kila kitengo cha wakati, sisi ni
wanaenda mzunguko kidogo tu kidogo msingi kasi yake ya 2 saizi
kwa kitengo cha wakati.
Lakini daima, tunakwenda kuwa na kuangalia kama mzunguko ni kugusa
makali ya haki ya screen au kushoto makali ya screen, kwa sababu kama ni hivyo, sisi
haja yake ya Bounce, hivyo kusema.
>> Jinsi ya kutekeleza dhana ya bouncing?
Vizuri kama sisi ni kwenda saa 2 saizi kwa haki kwa kitengo cha wakati, kwa bounce mbali
makali ya haki, tunaweza tu kubadili kwamba kuwa mbaya 2 saizi kwa kitengo
ya muda, na hivyo kukataa kasi.
Kwa hiyo kwa kweli, bouncing ni kiasi moja kwa moja.
>> Hebu kwanza kusogeza mduara na hayo, wengi saizi pamoja x-mhimili, na hii
saizi nyingi pamoja y-mhimili.
Kwa maneno mengine, hatutaki kwa hoja pamoja y-mhimili wakati wote.
Sisi tu unataka Bounce nyuma na nje kushoto na kulia.
>> Na hebu sasa kuangalia ndani ya kitanzi hii kama x-kuratibu ya mduara pamoja na
upana wa mduara ni mkubwa kuliko au sawa na
upana wa dirisha -
kwa maneno mengine, kama eneo mzunguko ya pamoja na upana wa mzunguko
yenyewe ni zimepita makali ya dirisha, tunatarajia
bora kubadili kasi yetu -
kasi anapata kasi hasi, na hivyo flipping chanya kwa
hasi au hasi chanya.
Lakini nini kama mduara ni kuhama kutoka kulia kwenda kushoto na kwa hiyo hits
makali ya kushoto?
Kwa maneno mengine, kama x-kuratibu ya mduara ni sasa chini ya au sawa
0, hebu kwenda mbele na tena Geuza kasi yetu.
>> Kwa nini basi, mimi si aliongeza katika upana wa mzunguko
wakati, kama mimi kabla ya?
Naam, kukumbuka kwamba kuratibu ya kitu hufafanuliwa
na juu upande wa kushoto kona yake, si katikati yake.
Na hivyo wakati mzunguko ni kuhama kutoka kushoto na kulia, sisi haja ya kuangalia
kama makali ya haki ya mzunguko amepita
makali ya haki ya dirisha.
Hivyo kufikiri kile ambacho ni, tuna kupata x-kuratibu ya mduara
pamoja na upana wa mzunguko wa hoja wenyewe kutoka juu upande wa kushoto
kona, kwa ufanisi, kwa juu mkono wa kulia kona.
Wakati mduara ni kuhama kutoka haki ya kushoto, wakati huo huo, sisi hawana haja ya
kujisumbua na kuongeza vile, kwa sababu juu kushoto kona ya mzunguko ni
tayari thamani tutaweza kupata kutoka kupata x.
>> Hebu sasa hoja ya mpira.
Hebu sasa kuokoa, kukusanya, na kukimbia hii mpango, kufanya bounce. / bounce.
Na huko tuna mpango.
>> Lakini mzunguko ni kusonga hivyo darn haraka, ni vigumu kuona nini
hasa kinachoendelea.
Basi hebu mpango kabisa kulazimishwa na kubonyeza X katika juu mkono wa kulia
kona hapa.
Hebu sasa kurudi nyuma katika kanuni chanzo na polepole mambo chini kidogo.
>> Kwa maneno mengine, ndani ya hii usio kitanzi, badala ya hoja na na
hoja na tena, ad nauseum, hebu msiweke kwa milliseconds chache tu
kabla ya kuendelea na hoja tena.
Hasa, hebu kwenda chini ya usio kitanzi hapa na tu
pause kwa, kusema, 10 milliseconds juu ya kila iteration.
Hebu sasa recompile na re-run bounce.
Na sasa tunaona busara zaidi utekelezaji, ambapo tunaweza kuona
mzunguko kweli bouncing juu ya kushoto na makali ya haki.