THOMAS LIVELY: Tout dwat.
Hi, tout moun.
Mwen se Thomas Lively.
Seminè sa a ki pral yo dwe ekri jwèt 2D nan C lè l sèvi avèk SDL.
Se konsa, mwen konnen ou ap tout mande, yeah, Mwen vrèman
vle jwe jwèt, epi fè jwèt, men ki sa se biznis SDL sa a?
Se konsa, SDL se yon bibliyotèk C.
Li kanpe pou Senp nan DirectMedia Kouch.
Lè li nan yon platfòm kwa, jwèt devlopman bibliyotèk.
Li travay sou Windows, Mac, Linux, menm yo ak android.
Li manch bagay sa yo tankou aksè a sistèm yo odyo
pou òdinatè a, klavye a, ak sourit, jwaystik, si yo ap tache.
Sou mobil, li ka menm fè nan manyen opinyon ak nan tout sa.
Ak nan kou, li kenbe grafik, desen bagay yo ekran an.
>> Se konsa, li la trè lajman itilize, menm si ou ka pa janm tande pale de li anvan an.
Li nan bati nan, pou egzanp, Sous motè Valv la,
ki pouvwa jwèt tankou Portal ak Ekip fòtrès 2.
Li la tou nan yon nimewo gwo anpil nan jwèt indie ki vini soti,
se konsa mwen eksite yo wè sa ki ou tout pral fè ak li.
>> Objektif seminè yo fè ou jwenn mete soti nan gen devlope ak SDL.
Nou pral aprann kijan yo kreye yon fenèt jwèt.
Nou ap ale nan kreye sprites, ki se imaj yo nan jwèt ou
ki ka deplase alantou.
Nou pral aprann kijan pou ale ak pou enkouraje sprites yo,
se konsa deplase yo alantou li, fè yo chanje sou tan.
Epi nou ap ale nan aprann kijan pran klavye ak sourit
enfòmasyon nan men gwoup òdinatè a.
Ki sa nou pa pral pale sou jodi a se grafik 3D,
paske ki nan yon bagay ki konplike anpil sijè ke nou pa gen tan pou.
Nou pa pral aprann ki jan yo jwe odyo sou jwèt nou an.
E nou pa pral bati pou anyen men Linux.
>> Koulye a, opozisyon yo gen sa, èspere ke, nan fen seminè a,
ou pral konfòtab ak dokiman an SDL,
se konsa ou pral kapab ale figi konnen fason yo jwe odyo pou tèt ou.
Epitou bati pou Mac oswa PC yo ta dwe travay egzakteman menm jan bati pou Linux,
men konfigirasyon an k ap pase yo gen yon ti kras diferan.
Se konsa, ou ta dwe kapab figi konnen kouman ou kapab fè bagay sa yo
nan fen seminè a jodi a.
>> Se konsa, pou mete a moute, nou ap ale yo sèvi ak yon machin vityèl.
Nou ta sèvi ak IDE la CS50, paske nou ap jis pral yo dwe ekri nan C.
Men, depi IDE a se pa yon navigatè, nou pa ka kreye nouvo fenèt yo oswa ou ekspozisyon
grafik nan li.
Se konsa, nou bezwen yon machin vityèl.
Se konsa, ou kapab swiv enstriksyon yo isit la nan manual.CS50.net/appliance/15
yo enstale aparèy la CS50 ofisyèl, ki se senpleman yon Linux vityèl
machin.
>> Lè sa a, yon fwa ou gen Tout moun nan mete leve- li
ta ka pran yon ti tan, paske yon gwo anpil download-- w ap ale
kouri nan VM sudo nimewo apatman-aktyalizasyon a jwenn.
Epi sa a, reyèlman ale mete ajou tout lojisyèl an
pakè sou machin vityèl ou.
>> Apre sa, w ap ale nan kouri sudo nimewo apatman-jwenn enstale, libsdl2-2.0-0,
libsdl2-db, libsdl2-dev, ak Anplis de sa libsdl2-imaj-2.0-0,
libsdl2-imaj-db, ak libsdl2-imaj-DEV.
Se konsa, sa ki fè?
Sa senpleman enstale dbug nan enfòmasyon, dokiman, Tèt,
ak binèr pou de bibliyotèk.
Regilye fin vye granmoun, SDL 2.0, ak yon lòt bibliyotèk
rele SDL Imaj, ki nou ap ale nan lè l sèvi avèk
chaj dosye imaj nan jwèt nou yo.
>> Se konsa, yon fwa ou gen ki tou ki, jis lè li mande,
ou jis tape repons lan se wi, frape Antre yo enstale sa yo pakè,
ak Lè sa a ou ta dwe bon yo ale.
Se konsa, yo ka resevwa kòd la distribisyon, ou can-- oh mwen renmen anpil, sa a pa mete ajou.
Sòf si ou gen yon account-- GitHub si ou gen yon kont GitHub,
ou ka fè sa Git lòd script repo a
ak ki pral download Git nan repo ak tout kòd la nan li,
se konsa ke ou pral gen kòd la.
>> Si ou pa gen yon GitHub kont, sa ou ta dwe fè se di ki
wgithttps: //github.com/tlively/sdl seminar-- ak isit la li a different--
/archive/master.zip.
Se konsa, ankò, sa a, se menm bagay la tou egzak URL, eksepte li pral yo dwe
tlively / SDL_seminar / master.zip ak w ap itilize wgit nan download sa.
Lè sa a, ou kapab senpleman ouvriers ki achiv
ak Lè sa a ou pral gen tout kòd la sous.
Se konsa, regrèt sou sa.
Lè sa a, kòd a ap tou ap anime nan paj entènèt seminè a CS50 nan nan yon koup
jou.
>> Tout dwa.
Se konsa, ki jan nou jwenn te kòmanse ekri pwòp jwèt nou?
Oke, premye bagay la nou ap ale nan vle fè
se gade nan dokiman an SDL.
Se konsa, isit la nan VM nan.
Ak isit la nan paj wèb la.
Mwen te navige yo viv libsdl.org.
Sa mwen ap pral fè isit la se ale sou ankadre a, anba kopi dokiman yo,
epi klike sou wiki a.
Sa a pral pote m 'nan wiki a ki gen pi fò nan dokiman an pou SDL.
Plis pase sou ankadre a isit la, nou ap ale nan klike API pa kategori,
paske se pral bay nou yon bèl vi nan kategori
a API a tout antye pou SDL.
>> Se konsa, pou egzanp, nou gen inisyalizasyon a debaz
ak fèmen, tout sòt nan nan bagay administratif pou lè l sèvi avèk SDL,
ak Lè sa a nou gen seksyon nan pou montre bagay sa yo ekran an.
Sa a videyo.
Evènman Antre, sa se ap resevwa enfòmasyon nan men gwoup klavye a,
ap resevwa enfòmasyon nan men gwoup sourit la, ak manch la, si ou genyen li menm.
Genyen fòs fidbak pou bagay sa yo tankou contrôleur jwèt, ki
nou pa ap ale nan pale sou.
Ak isit la nan odyo.
Lè sa a, gen nan yon pakèt moun sou lòt bagay ki SDL kapab fè pou ou.
>> Men, jodi a nou ap ale nan konsantre sou inisyalizasyon a isit la,
montre imaj nan videyo a seksyon, ak manyen evènman opinyon.
Se konsa, sa yo, se prensipal la seksyon nan dokiman
ke ou ta dwe mangonmen sou.
Jis pou plezi, si nou ale sou isit la, epi klike sou API pa non,
nou ka wè yon lis ki gen chak sèl bagay nan bibliyotèk la SDL.
Se konsa, tout fonksyon sa yo, rsansman, estrikti, yon kantite lajan fou nan bagay,
alfabetik lòd.
Epi klèman, jouk ou konnen ou ap fè,
sa a pa a pwal twò itil, ki se poukisa nou fè API pa kategori.
>> Se konsa nou jwenn te kòmanse.
Nou swete ke ou te deja telechaje kòd la distribisyon.
Se konsa, sa ou kapab fè se, dwa isit la nan aparèy la CS50,
tou senpleman louvri yon tèminal.
Isit la nou ale.
Se konsa, mwen te deja telechaje nan distribisyon Kòd lè l sèvi avèk .zip a
metòd.
Apre sa, mwen te dekonprese li.
Se konsa, isit la li se nan mèt la seminè SDL.
Se konsa, mwen pral ale nan ki anyè.
Ak sa ki nou wè isit la se ke nou gen sèt C dosye.
Lè sa a ki pral kòd la nou ap ale nan dwe gade nan jodi a.
Nou gen yon makfil.
Epi nou gen yon anyè resous, ki tou senpleman gen yon imaj
ki ou pral wè byento ase.
>> Se konsa nou louvri moute sa yo dosye lè l sèvi avèk editè a G-Edit.
Se konsa, mwen vle louvri tout dosye yo ki kòmanse ak alo ak fini ak c.
Isit la nou ale.
Se konsa, sa a, se yon fenèt ti, se konsa nou ap ale nan eseye fè ki pi gran.
Non, li al fè wout yo.
>> Tout dwa.
Se konsa, isit la nan la trè premye dosye nou ap ale nan gade nan.
Yo rele li hello1_sdl.c.
Ak tout sa a fè se inisyalize SDL a bibliyotèk pou nou ka kòmanse lè l sèvi avèk li.
Kouman ou ta konnen k ap vini moute ak sa a Kòd tèt ou?
Oke, si nou gade sou a dokiman an
epi nou ale nan inisyalizasyon a ak fèmen seksyon,
li nan pral di nou tout sou jan yo ka inisyalize SDL.
Se konsa, definitivman li sa a kèk lòt tan.
Li nan ale nan di ou tout sou sa k ap pase sou isit la.
Men, neu a prensipal la matyè a se ke nou bezwen rele sa a fonksyon SDL Nan Li
epi yo pase li sa kalite bagay nou vle bibliyotèk la inisyalize.
Se konsa, nan ka nou an, nou ap jis pral inisyalize videyo a pou kounye a,
pou nou ka kòmanse montre imaj.
>> Plis pase isit la, ou ka wè si nou klike sou yon SDL Nan li, nou
ka jwenn menm plis enfòmasyon, ki gen ladan valè a retou.
Se konsa, nou wè isit la ke li returnes zewo sou siksè.
Se konsa, nan Kòd nou an, nou ap ale nan wè si li pa retounen zewo,
epi si li pa retounen zewo, se konsa li pa t 'siksè,
Lè sa a, nou ap ale nan tou senpleman ekri an lèt detache yon erè lè l sèvi avèk fonksyon sa a ak lòt,
SDL erè jwenn, ki retounen yon kòd dekri erè a ki te fèt.
Nou pral enprime ki erè ak lè sa a nou ap jis
ale nan sòti pwogram nan ak yon kòd erè.
>> Lè sa a, yon lòt bagay ke nou bezwen fè se, anvan sòti pwogram nan,
si nou avèk siksè inisyalizèd SDL, nou jis bezwen rele li SDL kite fimen.
Epi sa k ap pase yo okipe netwaye tout nan resous entèn SDL a pou nou.
Se konsa, dokiman an there-- ankò, isit la nou yo nan inisyalizasyon a
ak fèmen seksyon nan dokiman an.
Ou ka jis klike sou la fonksyon isit la, SDL kite fimen,
epi ou ka li tout sou sa kòm byen.
Ak yon anpil nan sa yo fonksyon paj dokiman
gen Kòd egzanp, se konsa sa a se trè bon resous.
Definitivman pase kèk tan lekti pati nan wiki sa a
si w ap pral fè sa a pou yon pwojè.
>> Tout dwa.
Se konsa, sa a, se pwogram antye nou an.
Ki sa nou ka fè kounye a is-- mwen se ale nan louvri makfil a isit la,
se konsa mwen pral pran yon gade nan ki jan ki travay.
Lè li nan yon makfil trè senp, menm jan ak sa ou te wè anvan.
Youn nan diferans ki genyen prensipal se ke, isit la, sa a
ki pral insert rezilta a nan kouri kòmandman sa a, ki ou te deja
enstale si ou te enstale SDL.
Lè sa a se yon lòd ki k ap pase yo jenere
kèk drapo anplis pou du a.
>> Anplis de sa ak sa yo ki, nou ap bay li tout kòmandman abityèl yo, menm jan tou
de kòmandman sa yo.
Se konsa, manch yo -lsdl2-image ki lye ak nan bibliyotèk la imaj SDL.
Apre sa,-LM a aktyèlman manch ki lye ak nan C bibliyotèk la estanda matematik.
Se konsa, nou pa yo ale nan bezwen sa yo pou tout nan dosye nou an C,
men nou jis mete yo nan lè sa a, nou kapab itilize makfil a menm pou tout bagay
san yo pa modifikasyon.
>> Plis pase isit la nan sous, sa a se kote ou ta
mete dosye yo ke ou te ale yo konpile pou pwojè ou.
Men, depi chak youn nan C mwen depoze isit la gen yon fonksyon prensipal yo,
li k ap pase yo jwenn konfonn si nou mete yo tout nan.
Se konsa, mwen pral jis di, pou kounye a, hello1_sdl.c,
ki se youn nan nou jis te gade.
Se konsa, si m 'ale tounen sou isit la, mwen ka fè.
Ak sa ki li te fè se li jis konpile ke premye dosye-a.
Lè sa a, nou ka tape ./game, paske li a ègzèkutabl a li pwodwi.
Apre sa, tout li te fè te ekri an lèt detache inisyalizasyon siksè.
Se konsa, nou te fè yon bagay dwat.
Men, sa te kalite raz, paske nou pa t 'wè yon fenèt,
pa gen anyen te deplase alantou.
>> Se konsa, gwo, nou te resevwa SDL inisyalizèd.
Koulye a, se pou yo deplase sou li nan yon bagay yon ti kras plis enteresan.
Se konsa, isit la nou gen hello2_window.c, ak sa a ki pral yo dwe yon ti kras plis
pwogram C konplèks ki inisyalizasyon SDL jis tankou anvan,
eksepte kounye a nou ap tou ale inisyalize SDL revèy.
Lè sa a ki pral fè nou aksè revèy la entèn
epi sèvi ak fonksyon ki gen rapò ak tan.
>> Lè sa a, kite pou yo gade desann isit la.
Ki sa nou fè se nou gen konsèy sa a nan yon struct fenèt SDL, ki
yo pral kreye pa sa a rele nan fonksyon an, SDL kreye fenèt.
Koulye a, sa a pran yon anpil nan agiman, kidonk kite a ale gade nan dokiman an.
Se konsa, ankò, mwen pral API pa kategori, mwen
pral desann nan videyo isit la, ak premye a seksyon, montre jesyon fenèt.
Se konsa, seksyon sa a gen yon tòn bagay nan li,
men si ou gade nan fonksyon sa yo, ou pral
wè ke pwobableman nou nan yon sèl vle yo rele SDL kreye fenèt,
ki k ap pase yo dwe gen dwa nan tèt la.
>> Se konsa, sa a se nan dokiman pou fonksyon sa a.
Fenèt la k ap pase yo gen yon Tit, yon x ak y pozisyon sou ekran an,
li nan ale nan gen yon lajè, se yon wotè, ak Lè sa a li pral pran kèk drapo.
Koulye a, nou pa aktyèlman pran swen sou nenpòt nan drapo sa yo kounye a,
men si ou te vle fè yon bagay tankou fè yon fenèt ekran plen,
ou te kapab pran yon gade nan sa.
Pou kounye a, nou ap jis pral yo sèvi ak valè espesyal sa yo,
Fenèt SDL plis santre pou x ak y yo nan lòd
jis kreye fenèt la nan sant la nan ekran nou an.
>> Se konsa, se sa ki ki nan fè.
Men, si fenèt k ap pase yo nil, sa vle di gen yon erè,
lè sa a ankò nou ap jis ale nan enprime erè a lè l sèvi avèk SDL erè jwenn.
Lè sa a, paske nou inisyalizèd SDL, kounye a nou bezwen fèmen li.
Se konsa, nou rele SDL kite anvan retounen yonn pou prensipal la.
>> Se konsa, nou gen fenèt sa a louvri èspere ke.
Ak sa ki nou ap ale fè se nou ap ale
yo rele SDL pou 5,000 milisgond, ki se menm bagay la kòm senk segonn.
Lè nou ap fè ak sa, li pral detwi fennèt la,
netwaye bibliyotèk la SDL, ak sòti pwogram nan.
Se konsa nou ale pi devan epi bay ke yon piki.
>> Se konsa, kounye olye pou yo chanje makfil a chak fwa,
Mwen kapab tou senpleman fè, ak Lè sa a, sou liy lan lòd,
di sous egal ak Lè sa a dosye a nou ap konpile.
Se konsa, li hello2_window.c.
Kokenn.
Pa gen erros.
Koulye a, si nou kouri ègzèkutabl nou an, nou wè fenèt sa a.
Koulye a, gen yon kèk pwoblèm ki genyen ak fenèt la.
Nou ka avanse pou li alantou li, men li gen sa a tenten jan nou koumanse andedan nan li.
Se konsa, nou pa t 'trase anyen, epi se konsa li a
jis plen ak fatra, ki se bèl anpil ki sa nou atann.
>> Anplis de sa, nou pa ka fèmen fenèt la.
M 'ap peze sa a X nan la kwen e pa gen anyen k ap pase.
Se konsa, nou pral wè ki jan yo ranje ke nan yon ti kras.
Se konsa nou ranje yon pati a ki kote nan fenèt se tout fatra an premye.
Se konsa, si n 'al jwenn nan men hello3_image.c, ki sa nou ka wè se ke nou te ajoute yon kèk
plis bagay isit la.
Nou te ajoute nouvo header sa a ranpli yo ka resevwa fonksyon yo revèy.
Mwen devine nou te fè ke nan dènye a yon sèl, tou, ak mwen pa t 'mansyone li.
Men koulye a, paske nou ap travay ak imaj,
nou bezwen genyen ladan yo nan SDL imaj dosye header kòm byen.
Se konsa, li menm bagay la kòm anvan, inisyalizin SDL isit la,
menm kontra avèk kreye fenèt yo.
Nou te wè ke anvan kounye a.
>> Koulye a, nou bezwen yo kreye yon bagay yo rele yon randu, ki sòt de ale ansanm
ak fenèt la.
Men, li la yon sòt de objè abstrè sa a, se
an chaj nan fè tout bagay sa yo desen operasyon nan fenèt la.
Epi, se aktyèlman koresponn nan yon pwogram chaje
nan pyès ki nan konpitè grafik nan ou òdinatè oswa telefòn ou oswa kèlkeswa sa.
Se konsa, drapo yo nou vle pase l-- epi ou ka gade nan dokiman an
yo ka resevwa plis detay isit lan-- yo ale yo dwe SDL rann akselere, ki
vle di li nan pral fè lè l sèvi avèk pyès ki nan konpitè grafik
epi li pa jis imite nan lojisyèl.
>> Epi nou ap ale nan sèvi ak SDL randu PRESENTVSYNC.
VSync se yon bagay ki tou senpleman fè grafik ou gade pi bon ak anpeche
ekran bagay sa yo rele pè, kote mwatye
nan yon sèl ankadreman ak mwatye nan pwochen an ankadreman jwenn trase nan menm tan an
e li sanble terib.
Men, ankò, ou ka ale li sou sa pou kont ou.
>> Se konsa, nou gen kèk drapo isit la.
Se konsa, nou ap jis pral rele sa a SDL fonksyon kreye randu.
Nou pral bay li fenèt la asosye ak sa randu.
Youn Negatif vle di nou pa pran swen sa grafik chofè nou ap ale nan sèvi ak.
Se konsa, ki ta dwe bèl anpil toujou fè yon sèl negatif,
sof si ou konnen sou grafik chofè yo.
Lè sa a, nou ap jis pral yo pase l 'drapo nou an.
Se konsa, si ki retounen nil, lè sa a nou ap ale nan enprime erè a kòm dabitid,
men Lè sa a nou ap tou ale detwi fenèt la
nan pwòp moute resous moun anvan rele SDL kite epi retounen.
>> Koulye a, pati a enteresan isit la se kote nou chaje pòtre ak nou
lè l sèvi avèk sa a IMG_load fonksyon.
Sa a se fonksyon a sèlman nou ap ale yo sèvi ak nan bibliyotèk la imaj SDL.
Li nan yon sèl la sèlman nou bezwen.
Li se yon fonksyon ki pran fisèl la ki se chemen an nan nenpòt ki resous imaj.
Apre sa, li kapab yon .png, se yon GIF, bitmap, nenpòt nan bagay sa yo.
Epi sa a, poukisa fonksyon sa a se konsa bèl.
Li ka okipe bèl anpil nenpòt ki fòma.
Charges l 'nan memwa ak magazen li kòm yon bagay yo rele yon sifas SDL.
>> Koulye a, yon sifas SDL se senpleman yon struct ki reprezante done imaj nan memwa.
Se konsa, ou ka li plis sou ke nan dokiman an de.
Men, si sa a erè, Lè sa a, nou ap pral fè tout bagay la ki kote
nou enprime erè a, fèmen nou an resous, ak Lè sa a kite fimen pwogram nan.
Koulye a, bagay la enteresan an se, anvan nou ka trase imaj sa a bò fennèt la,
nou bezwen aktyèlman fè l 'yon teksti.
Koulye a, yon koresponn teksti nan done imaj chaje
nan memwa pyès ki nan konpitè grafik nan la.
>> Se konsa, yon sifas se nan prensipal memwa, memwa regilye
ke nou ve yo te lè l sèvi avèk tout semès, ak yon teksti se nan sa a VRAM separe
memwa ki kontwole yo grafik kat.
Se konsa, nou rele sa a fonksyon SDL_CreateTextureFromSurface.
Nou bay li randu nou yo ak sifas nou an.
Lè sa a, nou ap aktyèlman fè ak sifas la,
se konsa nou ap jis ale nan libere li.
Nou pa bezwen li ankò.
Lè sa a, Se konsa, si sa a rele errored, li tounen nil,
lè sa a nou ap ale nan fè tout la erè rapò bagay ankò.
>> Tout dwa.
Isit la, nou jwenn nan kèk rann fonksyon vrè.
Se konsa, lè w rele SDL_RenderClear yo, e pase li
randu a ki asosye ak fennèt nou an tou senpleman fè fenèt la ale nwa.
Se konsa, li retire ki tenten ke nou te wè nan fenèt nou an anvan ak fè li nwa.
Lè sa a, nou ap ale yo rele SDL_RenderCopy,
bay li randu nou an, teksti nou an.
Epitou, n ap pale sou sa jaden sa yo, se nan yon ti jan.
Men, sa k ap pase yo pran done yo teksti
ak fè kopi li sou nou an fenèt fè desen imaj la.
Se konsa, apre nou te fè sa a kopi done yo sou fenèt nou an,
nou dwe fè fonksyon siplemantè sa a rele SDL_RenderPresent.
>> Lè sa a se enteresan paske sa a vin
nan yon sijè rele doub tampon.
Se konsa, doub tampon se yon teknik ki fè grafik ou gade yon anpil pi byen.
Yon fwa ankò, li anpeche ekran ki chire Mwen te ap pale de pi bonè, kote
ou gen de tanpon.
Genyen yon tanpon tounen nan memwa ak yon zòn de defans devan.
Tanpon la devan se literalman sa ki nan sou ekran ou a nan moman an.
Se konsa, nou fè tout bagay sa yo trase varyasyon, tankou SDL rann kopye oubyen SDL_RenderClear
tanpon la tounen.
Se konsa, yo modifye bagay nan zòn de defans la tounen.
Isit la nou ka fè desen sa a kare vèt yo tanpon la tounen.
>> Se sak fè lè nou ap fè fè rann operasyon nou an, ki
ta ka pran yon reyèlman long tan, ki sa nou ap ale nan fè
se chanje tanpon yo.
Se konsa, li literalman jis pran nan tanpon devan ak zòn de defans la tounen
ak switch yo, se konsa sa, enstantane,
nan yon sèl operasyon an, olye pou yo petèt dè santèn oswa dè milye,
tout nan nou an ki fèk rann objè ki sou ekran an.
Lè sa a anpeche bagay tankou entérésan nan ekran
lè nou te sèlman trase mwatye nan objè nou an pou ankadreman an.
Se konsa, Se poutèt sa nou bezwen rele SDL_RenderPresent, osi byen
kòm SDL_RenderCopy.
>> Yon fwa ankò, nou ap jis pral pou ret tann pou senk segonn.
Lè sa a, nou ap ale nan netwaye resous nou yo.
Nou gen byen yon kèk plis tan sa a.
Lè sa a, nou ap jis pral sòti pwogram nan.
Se konsa nou fè sa.
Mwen pral tape fè, ak Lè sa sous egal hello-- sa a se kounye a 3image.c.
Tout dwa, ki konpile pa gen okenn erè.
Epi ou ka wè isit la mwen te kounye a trase soti imaj m 'yo, Hello, CS50!
bò fennèt nou an, ki disparèt apre senk segonn.
>> Koulye a, sa a toujou gen pwoblèm, dwa?
Sa a se pa yon bon aplikasyon an, paske lè mwen eseye fèmen fennèt la,
pa gen anyen k ap pase.
Sa x se toujou pa reponn.
Se konsa, kite a pran yon gade nan la pwochen ranpli, hello4animation.
Se konsa, sa a se dosye a ki k ap pase prezante
k ap deplase ak mouvman nan imaj nou an.
Se konsa, nou ap ale nan fè nan menm bagay tankou anvan,
kòmanse SDL, kreye nan fenèt, kreye randu a,
chaje imaj la nan memwa, kreye teksti an.
Nou te wè nan tout sa anvan.
Koulye a, sa a se nouvo.
Nou pral gen yon estrikti ki rele yon dirèk SDL, ki se jis yon rektang.
Si nou ale sou isit la, nou kapab fè yon rechèch pou SDL dirèk,
epi ou ka wè li nan yon trè senp estrikti.
Li te gen yon x, yon y pou pozisyon an, epi li
gen yon lajè ak yon wotè pou gwosè a nan rektang lan.
>> Se konsa, sa nou ap ale nan fè se nou ap ale nan defini sa a dirèk dèst SDL,
pou destinasyon.
Lè sa a se plas la sou ekran an kote
nou ap ale nan dwe desen pòtre ak nou, dwa Se konsa,
si nou ap ale nan dwe k ap deplase imaj la alantou li,
Lè sa a, destinasyon an kote nou ap ale nan trase imaj la
bezwen yo dwe deplase alantou.
Se konsa, nou ap ale nan rele sa a fonksyon SDL_QueryTexture.
Apre sa, remake mwen pase adrès la a dest.w, ki se lajè a,
ak dest.h, ki se wotè a.
Se konsa, ki pral SDL_QueryTexture nan magazen nan sa yo jaden yo lajè a
ak wotè a nan teksti nou an.
>> Lè sa a, sa m ap pral fè se mwen pral
yo mete yo dwe fenèt dest.x lajè dest.w mwens, ki se
lajè a nan luten la, divize pa 2.
Lè sa a ki pral mete l 'kanpe konsa ki se imaj la parfe santre
nan fennèt nou an, tout dwa?
Se konsa, koulye a, mwen gen yon pozisyon y.
Lè sa a ki pral gen yon varyab sa a, se
chanje, paske nou ap ale nan dwe k ap deplase imaj la nan y direksyon an.
Epi, koulye a nou gen yon bagay rele yon bouk animasyon.
>> Se konsa, kouman animasyon an travay?
Oke, je imen kapab detekte 12 distenk imaj nan chak dezyèm, tout dwa?
Se konsa, si ou flash 12 kat imaj nan m ' nan yon dezyèm, mwen te wè chak nan imaj sa yo
kòm pwòp imaj distenk li yo endividyèl elèv yo.
Koulye a, si ou flash plis imaj nan m 'nan yon dezyèm fwa,
Lè sa a, je m 'ta kòmanse bwouye yo ansanm
e mwen ta wè li kòm mouvman, olye pou yo yon sèl imaj diferan.
Se konsa, pou egzanp, sinema ak televizyon, yo flash imaj nan ou 24 fwa
yon dezyèm fwa.
Se konsa, sa a, se 24 ankadreman pou chak dezyèm fwa.
Ekran konpitè, sou lòt men an, souvan yo nan 60 ankadreman pou chak dezyèm fwa.
Sa a vitès actualiser yo.
Sa a ki jan souvan yo rafrechi foto a sou ekran an.
Se konsa, sib nou an a pwal 60 ankadreman pou chak dezyèm pou jwèt nou an.
>> Se konsa nou wè ke nan kòd la.
Se konsa, pou chak ankadreman, nou ap premye ale nan klè fenèt la.
Sa a se modèl la an jeneral.
Ou toujou klè nan fenèt chak ankadreman, ak Lè sa
fè tout nan desen ou operasyon yo, ak Lè sa a nan fen a,
RenderPresent yo montre tout bagay nan ankadreman an.
Lè sa a, w ap ale nan gen yon rete tann nan fen a
rete tann jiskaske pwochen an ankadreman ta dwe kòmanse.
>> Se konsa, si m 'te fè yon anpil nan konplèks kalkil isit la
ki te pran plis pase 16 milisgond, li ta enposib pou m '
yo ka resevwa ke to ankadreman nan 60 ki Mwen te vle, paske chak ankadreman se
pran twò lontan yo kalkile.
Anplis de sa, nou ap reyèlman fè sòt de yon kantite lajan neglijab nan travay
isit la, paske gen nan sèlman yon sèl bagay nou ap desen.
Se konsa, mwen jis rete tann 1/60 nan yon dezyèm lan, ki se longè a
a yon ankadreman an ant ankadreman.
Se konsa, mwen sòt de samblan fè tout travay mwen pran zewo tan.
Men, nan yon jwèt reyèl, ou ta gen yo fè soustraksyon
kantite tan li te pran fè tout travay sa a de tan rès ou yo.
>> Se konsa, de tout fason, ki sa mwen aktyèlman fè nan sa a riban?
Mwen klè fenèt la.
Mwen mete dest.y la, ki se yon int aktyèl mwen y pozisyon jete nan yon int.
Koulye a, mwen vle flote rezolisyon pou y pozisyon mwen nan jwèt m 'yo,
men Lè sa a yo aktyèlman trase li sou ekran an,
li bezwen antye, paske li nan nan inite a piksèl, se konsa se sa ki jete an se pou.
Mwen pral fè desen imaj la.
Se konsa, sa se yon sous rektang lan.
Lè sa a se rektang lan destinasyon.
Se konsa, mwen te pase pou nil sous rektang lan
yo di mwen vle trase tout teksti mwen.
Men, si ou te gen yon anpil nan tèkstur nan jwèt ou
e yo ap tout nan yon sèl kat jeyografik teksti gwo ki te chaje nan SDL kòm sèlman yon sèl
teksti, ou ta ka sèvi ak yon rektang sous
yo chwazi youn nan sifas sa yo ki pi piti, youn nan sprites yo ki pi piti,
soti nan ki kat jeyografik teksti gwo.
>> Se konsa, ankò, mwen pase rann mwen, mwen teksti, e kounye a, destinasyon an.
Sa a se pral yo dwe kote nan la fenèt li pral yo dwe trase.
Apre sa, lè sa a, paske mwen animaux yon bagay, mwen bezwen mouvman,
Mwen pral yo dwe à la pozisyon luten sou chak ankadreman.
Se konsa, mwen gen sa a konstan rele woulo liv pi vit nan inite nan piksèl pou chak dezyèm.
Koulye a, chak fwa nou fè yon mouvman, ankadreman an se sèlman 1/60 nan yon dezyèm fwa.
Se konsa, mwen pral divize ki pa 60.
Lè sa a,, se pou yo wè, mwen se soustraksyon ki soti nan y pozisyon.
Poukisa mwen soustraksyon?
Nou pral jwenn ak sa yo ki nan yon dezyèm fwa.
Se konsa, lè sa a mwen netwaye resous mwen ak pwogram nan nan plis pase.
>> Se konsa, kite a fè sa.
Se konsa nou ale nan fè SRCS = hello4 animation.c, tout dwa?
Jwèt.
Gen ou ale.
Se konsa, mwen genyen li defile moute nan fenèt, ki se trè byen òdone.
Men, kenbe fèm nan, mwen te soustraksyon soti nan y pozisyon an chak fwa.
Ki sa ki k ap pase sou la?
Oke, li sanble ke nan SDL, ak an reyalite, nan pifò grafik òdinatè,
orijin nan pou sistèm nan kowòdone se tèt la kite nan fenèt la.
>> Se konsa, yon direksyon ki pozitif x ale atravè fenèt ou a dwat la.
Ak pozitif y direksyon an aktyèlman ale desann.
Se konsa, ankò, nan orijin nan nan tèt la kite nan fenèt ou,
pozitif y direksyon se desann, ak pozitif x se a dwat la.
Se konsa, lè m 'fè soustraksyon soti nan pozisyon nan y, sa a, se
ale nan fè li ale sou negatif la y direksyon, ki se moute fenèt la.
Se konsa, sa a, se sa k ap pase a.
Fre.
>> Se pou yo gade nan dosye-a.
Isit la se pati nan la montre kote nou finalman
jwenn ki X nan kwen an nan fenèt la ki nan sipoze fèmen fenèt la
nan travay.
Se konsa, sa k ap pase sou?
Nou inisyalize SDL, kreye fennèt la, kreye randu a, chaje imaj la,
kreye teksti an tankou nou te wè anvan.
Nou gen rektang lan destinasyon menm tankou anvan, se li menm rele nan sijè rechèch teksti.
Men, tan sa a, Lè sa a, nou ap ale nan divize lajè a
ak wotè a nan destinasyon nou an pa 4.
Sa a sèlman gen efè a nan dekale pòtre ak nou desann lè
nou montre l 'nan fenèt la nan kat.
Se konsa, sa a, se bèl byen òdone.
Nou ka jis echèl jis tankou sa.
Nou pwal kòmanse luten la nan sant la nan ekran an.
Epi, koulye a nou gen x ak y vitès ak yo ap tou de pral kòmanse nan zewo.
>> Sa a se dosye a mal.
Mwen dezole.
Se konsa, ki nan tout verite.
Sa a tout toujou nan sa a ranpli.
Nou gen divize an pa 4 ak tout bagay.
Se konsa, isit la nou gen nou an x ​​ak y pozisyon pou sant la nan fenèt la.
Apre sa, nou bay li yon premye vitès nan vitès sa a konstan, ki
Mwen kwè se 300 piksèl pou chak dezyèm.
Koulye a, nou gen int sa a te kapab jis kòm byen gen yon Boolean rele fèmen mande a.
Ak olye pou yo fè yon enfini riban sou yon revèy isit la,
nou ap ale nan dwe animaux kòm lontan ke se pa sa fèmen mande a.
>> Se konsa, ki jan nou travay sou evènman?
Oke, ke moun kap kriye SDL moute evènman nan yon literal keu dèyè sèn nan.
Lè sa a, chak ankadreman, nou ka dequeue evènman
soti nan ki lè l sèvi avèk keu sa a apèl SDL_PullEvent.
Epi ankò, definitivman ale li sou sa a nan dokiman an.
Genyen yon anpil plis detay ak yon anpil plis fonksyon ou ka itilize ak sa.
Nou pase l adrès la a bagay sa a, SDL_Event
ke nou gen isit la sou pil la.
>> Koulye a, ki sa ki yon SDL_event?
Paske SDL, si nou gade nan documentation-- yo se pou yo
wè, API pa kategori, D ' evènman, evènman manyen,
nou ka gade nan nimewo a evènman nan diferan isit la
epi nou ka wè gen nan yon tòn antye nan yo.
Se konsa, sa se bagay SDL_Event sa a?
SDL_Event se yon sendika.
Wow, sa ki nan yon sendika?
Ou te gen pwobableman pa janm tande pale de ke anvan.
Epi sa a, OK.
>> Yon sendika se kalite tankou yon struct, eksepte yon struct
gen yon espas pou tout moun nan jaden li yo ak memwa,
Lè nou konsidere ke yon sendika sèlman gen ase espas nan anfòm pi gwo a
youn nan jaden yo li yo, ki vle di li ka sèlman magazen youn nan jaden yo li yo
nan yon moman, ki kalite fè sans pou evènman, dwa?
Nou ka gen yon klavye evènman oswa yon evènman fenèt,
men yon evènman sèl pa ka tou de yon evènman klavye ak yon evènman fenèt,
se konsa li ta dwe komik gen espas pou tou de nan sa yo andedan sendika evènman nou an.
Se konsa, si ou te vle kreye sendika pwòp ou a,
li sanble ekzakteman menm bagay la kòm kreye yon struct,
eksepte ke nou itilize mo kle a sendika olye pou yo mo kle a struct.
Epi sonje, pou tout moun nan nan bagay andedan sendika ou,
varyab aktyèl la se sa ki sendika a ka sèlman gen youn nan valè sa yo
nan yon tan.
>> Se konsa, ki jan nou ka di ki kalite evènman nou jis déja koupe nan keu sa a?
Bon, nou ka fè tès pou event.type.
Men, si se sa ki egal SDL_Quit, nou konnen
li nan evènman an ki te pwodwi lè nou
frape ki X nan kwen an nan fenèt la.
Epi nou ka mete fèmen mande egal 1.
Rès la se jis kèk animasyon ke ou te wè anvan.
Se konsa nou ale pi devan epi fè sa a epi wè ki jan byen li fonksyone.
Se konsa, mwen pral tape fè ak Lè sa a, SRCS = hello5_events.c.
Gen nou ale.
Jwèt.
>> Koulye a, nou ka wè li te tout bon scaled desann nan kat.
Epi, koulye a li nan rebondi alantou.
Mwen gen kèk deteksyon kolizyon pwal sou ak kote sa yo nan fenèt la
ke nou ka pran yon gade nan.
Ak sa ki k ap pase lè m 'ale nan fèmen li?
Li fèmen.
Kokenn.
Nou te resevwa ke evènman.
Apre sa, nou okipe li.
>> Se konsa, kite pou yo gade tounen nan kòd la.
Se konsa, kouman mwen te jwenn li rebondi alantou tankou sa?
Sonje mwen mete tou de x ak y okòmansman vitès yo.
Apre sa, vitès se yon pozitif konstan, se konsa sa a, se
ale nan jwenn li kòmanse soti pral desann ak sou bò dwat la.
>> Koulye a, chak ankadreman, nan adisyon a manyen nenpòt evènman ki te ka ki te fèt,
Mwen pral yo detekte si wi ou non mwen luten ap eseye ale soti nan fenèt la.
Se konsa, nou ka fè sa pa jis tcheke x_pos ak 0, y_pos 0, ak Lè sa a
tou x_pos ak y_pos ak lajè fenèt ak wotè fenèt.
Avi mwen te soustrè lajè a nan luten la.
Lè sa a se paske si mwen pa t ' fè soustraksyon lajè a nan luten la,
li ta sèlman tcheke ke orijin nan luten la
pa t 'ale deyò fenèt la.
Men, nou vle tout la lajè luten la
toujou gen andedan fennèt la, li wotè a tout antye de luten la
toujou gen andedan fenèt la.
Se konsa, se sa ki soustraksyon a se pou.
Yon anpil nan jeyometri isit la kapab ka itil yo desine li soti
sou papye ak kowòdone a sistèm yo wè ki sa ki pwal sou.
>> Se konsa, si mwen fè kolizyon, mwen jis tou senpleman Reyajiste pozisyon an
konsa ke li pa pral soti nan ekran an.
Apre sa, mwen pral, si li rebondi sou youn nan flan yo,
Mwen pral anile nan x vitès konsa ke li
kòmanse rebondi nan lòt direksyon an.
Apre sa, Menm jan an tou, si li frape tèt la oswa anba a,
Mwen pral mete vitès la y egal a y vitès la negatif,
konsa ke li pral rebondi tounen.
Se konsa, sa a, se jis ki jan nou te resevwa ki isit la.
>> Apre sa, pozisyon yo jour jis tankou nou te wè anvan,
divize pa 60, paske nou ap sèlman manyen 1/60 nan yon dezyèm fwa.
Lè sa a, rann, ekzakteman menm bagay la tankou anvan.
Se konsa, sa a, se tout bagay ki te ale sou sa a dosye.
Se konsa, sa a, se ki jan nou fè evènman yo.
Bagay la prensipal yo pran lwen isit la se fonksyon SDL_PullEvent sa a.
Apre sa, ou ta dwe definitivman li nan dokiman plis sou SDL_Event
sendika a, paske sa a ki kalite done se trè, trè enpòtan, paske nou sèvi ak li
pou tout kalite evènman yo.
>> Pou egzanp, nou sèvi ak li pou klavye evènman, ki se sa ki sa a ranpli se pou.
Se konsa, sa nou genyen?
Nou gen menm bagay la tankou anvan, inisyalize SDL, kreye yon fenèt,
kreye yon randu, chaje imaj la nan memwa, kreye teksti an.
Yon fwa ankò, nou ap ale nan gen sa a rektang dèst,
nou ap ale nan echèl imaj la pa kat, fè li yon ti jan pi piti.
Koulye a, nou pral kòmanse nan luten nan sant nan ekran an.
Men, fwa sa a, nou ap ale nan mete nan x premye ak y vitès a zewo,
paske klavye a se ale nan kontwole sa yo.
Apre sa, Anplis de sa, nou ap ale nan kenbe tras nan sa yo varyab
leve, desann, yo kite, ak dwa.
Epi sa k ap pase yo kenbe tras nan si wi ou non nou te
bourade bouton sa yo klavye ki koresponn ak leve, desann, agoch,
ak dwa.
>> Koulye a, sa a se kalite anpenpan paske nou ka sèvi ak W, A, S,
D isit la, oswa kle yo flèch vrè.
Nou pral wè ke nan jis yon dezyèm fwa.
Se konsa, nou ap ale nan travay sou evènman an jis tankou anvan.
Nou rale evènman an.
Men koulye a, nou ap ale nan chanje sou kalite a evènman.
Si li nan SDL_Quit, nou ap pral mete fèmen
mande yo yon sèl, jis tankou anvan.
Ki okipe zafè yo nan x kwen an nan fennèt la,
se konsa ke fenèt nou an aktyèlman fèmen.
>> Sinon, si nou jwenn yon kle SDL desann evènman, ki vle di nou bourade yon kle,
Lè sa a, sa n ap pral fè se nou ap ale nan chanje sou bagay sa a isit la,
ki means-- konsa event.key vle di trete sendika evènman nou an,
ale epi pou yo jwenn kle a evènman estrikti nan li.
Se konsa, li vire soti ke sa a sendika se yon estrikti kle evènman.
Lè sa a, ale nan kle a estrikti evènman an jaden li yo
rele kèzen ak Lè sa a scancode.
Epi ankò, definitivman li dokiman an sou sa a.
Entrain Keyword byen enteresan.
Ou ka jwenn kòd eskanè oswa kòd kle.
Lè li nan yon ti kras sibtil, men dokiman an se byen bon.
>> Se konsa, si nou wè kòd a eskanè pou nou an kle laprès yo te W oswa leve,
nou ap ale nan mete kanpe egal a 1.
Lè sa a, nou kraze soti nan ki switch.
Si li nan A oswa kite, nou mete kite a 1, ak setra, et setra, pou desann ak dwa.
Koulye a, soti nan switch ekstèn sa a, si nou wè yon kle moute evènman,
sa vle di nou te lage yon kle epi nou ap pa gen okenn ankò peze li.
Se konsa, mwen pral di moute egal 0, gòch egal 0, desann egal 0, dwa
egal 0, et setra.
>> Apre sa, remake nou gen nan chak nan sa yo de ka mete dwa pwochen youn ak lòt
ki pa gen okenn Kòd separe pou ka a premye, ki
vle di ke si li nan yon S oswa yon desann dwa isit la,
li pral al touye kòd sa a.
Se konsa, sa a, se bèl sou la men.
Li anpeche nou gen fè plis kondisyon ak ifs ak bagay sa yo
tankou sa.
>> Se konsa, nou ap ale nan detèmine vitès la.
Nou mete vitès la nan 0.
Lè sa a, si se bourade moute epi yo pa desann, lè sa a nou
mete y vitès la nan vitès negatif.
Sonje negatif, paske an negatif y direksyon se leve.
Ak pozitif y direksyon an se desann.
Si desann se bourade epi yo pa leve, Lè sa a, nou ap
ale nan mete l 'nan vitès pozitif, ki vle di pral desann ekran an.
Menm bagay ak kite la ak dwa.
>> Lè sa a, nou ap ale nan mete ajou pozisyon yo jis tankou anvan.
Nou ap pral fè kolizyon deteksyon ak limit,
men nou pa ap ale nan Reyajiste a vitès, paske vitès la se jis
kontwole pa klavye a.
Men, nou yo ale nan Reyajiste a pozisyon kenbe li nan fennèt la.
Epi nou ap ale nan mete nan pozisyon nan struct a
ak Lè sa a fè nan tout rann bagay yo devan.
Se konsa, kite a wè ki sa li fè.
Se konsa, asire SRCS-- kite a wè, sa a se hello6_keyboard.c.
>> Oh, pa gen okenn.
Se konsa, nou gen kèk avètisman isit la.
Epi sa a, tou senpleman di nou pa t ' tcheke pou tout kalite sèl posib
nan evènman.
Sa a OK, paske gen nan 236 nan yo oswa konsa.
Se konsa, mwen pral inyore moun avètisman.
Li nan toujou konpile amann.
Se konsa, mwen ale nan jwe jwèt la.
Li pa nan k ap deplase.
Men koulye a,, lè m 'Mach sou klavye m' yo, Mwen kapab fè kèk mouvman WASD isit la,
Mwen sèvi ak kle flèch m 'tou.
Apre sa, remake, menm si mwen se peze dwat kounye a,
li pa pral soti nan fennèt la, paske mwen Reyajiste l 'sou chak ankadreman.
Se konsa, sa a, se bèl byen òdone.
Ou ka imajine deplase Mario ak kèk kle flèch oswa yon bagay tankou sa.
E wi, X la travay.
>> Dosye Se konsa, nou ap ale final fè yon gade nan, hellow7_mouse.
Sa a se sou kesyon pran opinyon sourit.
Se konsa, nan yon sèl sa a, nou enpòte header nan matematik,
paske nou ap ale nan gen yon ti kras nan matematik isit la.
Menm fin vye granmoun, se li menm fin vye granmoun bagay, destinasyon, menm fin vye granmoun, wè ke anvan.
Oke, sa a se enteresan.
Se konsa, nou ap tounen nan sèlman tcheke pou SDL nan kite evènman.
Poukisa se sa?
Se konsa, ou ka jwenn opinyon sourit soti nan evènman yo.
Tankou lè sourit la deplase, ou jwenn yon evènman pou sa.
Lè yo bay yon bouton sourit bourade, ou ka jwenn yon evènman pou sa.
>> Men, gen nan yon lòt, yon ti kras pi senp petèt, API pou jwenn D 'sourit.
Epi sa a, tou senpleman SDL jwenn sourit leta yo.
Se konsa, mwen gen yon int pou x ak y pou pozisyon an kurseur.
Mwen pase l 'bay SDL_GetMouseState, ki etabli sa yo.
Lè sa a se pozisyon nan nan kowòdone sistèm nan fenèt la.
Se konsa, si mas la se nan gòch nan tèt nan fennèt la, ki ta 0, 0.
>> Koulye a, sa m ap pral fè se mwen pral fè yon ti kras nan matematik vektè.
Mwen parye ou te panse ou pa t 'vle wè ke nan CS50, men isit la li ye.
Mwen pral fè kèk vektè matematik yo ka resevwa vektè a
soti nan imaj la kurseur la.
Se konsa, poukisa mwen gen soustraksyon sa a isit la?
Oke, si mwen jis itilize dèst .-- konsa Mwen bezwen li tradui sourit x la
ak y pa mwatye lajè a ak wotè nan imaj la,
paske mwen vle sant lan nan la imaj yo dwe ale nan direksyon pou sourit la,
pa orijin nan imaj la.
>> Se konsa, sa se sèlman a asire w mwen ap pale sou sant la nan imaj la isit la.
Lè sa a, nou jwenn delta x ak y, ki se diferans lan soti nan sib la
nan pozisyon aktyèl la nan imaj la.
Lè sa a, nou ka jwenn nan distans isit la, ki
a pwal Pitagò teyorèm, rasin kare nan x
fwa x plis y fwa y.
>> Koulye a, yo anpeche jig, e mwen ka montre ou sa sa a fè si mwen pa fè sa,
si distans ant kurseur la ak sant la imaj gen mwens pase senk,
Mwen jis pa pral pou avanse pou pi imaj la.
Sinon, nou mete vitès la.
Apre sa, nou mete l 'lè sa a, nan vitès ap toujou gen konstan.
Ak rezilta a privye ki te tout sa a matematik se ke imaj la
ki pral deplase nan direksyon pou kurseur la.
>> Koulye a, li sanble ke SDL_GetMouseState,
nan adisyon a mete nan x ak y agiman isit la,
li tou retounen yon int ki koresponn nan eta a nan bouton sa yo sourit.
Se konsa, nou pa ka li sa dirèkteman, men nou kapab
itilize makro sa yo, yon sèl lojik operatè, pa sa ki pè,
jis yon lojik ak.
Se konsa, nou di bouton, ki se rezilta nan a SDL_GetMouseState nou an, si sa
ak lojik, epi, sa a macro isit la, SDL_BUTTON_LEFT.
>> Se konsa, sa a ki pral tou senpleman rezoud bitmap nan ki koresponn
sou bò goch bouton sourit yo te bourade.
Se konsa, si lojik nan ak rive ak li nan
pa zewo, ki vle di bouton kite te bourade,
Lè sa a, nou ap aktyèlman ale nan anile tou de x ak y nan vitès la,
ki pral jis fè ki sove kite nan imaj.
Pozisyon Mizajou.
Kolizyon detèkte, wè li tout anvan, rann, tout dwa.
Se pou yo fè li.
Se konsa, ou te resevwa fè SRCS = hello7_mouse.c.
Great.
Pa gen erè.
Apre sa, jwèt.
>> Se konsa, isit mwen gen sourit mwen.
Ak yon imaj a se vre kouri dèyè sourit m 'yo.
Koulye a, nan yon jwèt ou fè, petèt sa a se tankou yon kouri dèyè lènmi
pèsonaj ti kras ou oswa kèlkeswa sa.
Men, isit la nou gen nan imaj kouri dèyè sourit la.
Lè m 'klike sou, sourit la kòmanse kouri dèyè imaj la
ak yon imaj a se kouri pou sourit.
Se konsa, sa a, se trè fre.
Apre sa, avi ankò, gen nan toujou kolizyon deteksyon isit la.
>> Se konsa, ki se ti kras final la Demo mwen te fè fè a isit la.
Li kite yo pran yon gade nan yon sèl bagay plis.
Se konsa, tounen isit la, mwen mansyone jig sa a.
Tout dwa.
Se konsa, si distans ki pi piti a pase senk piksèl, Mwen te mete x ak y vitès a zewo.
Kisa k ap pase si nou debarase m de sa?
Se konsa, mwen pral jis fè sa a.
Tanpri eskize sa a style épouvantabl, men nou kòmante soti Kòd ki kòrèk la.
Se konsa, mwen pral pou konsève pou sa ki epi fè nan menm lòd yo devan fè li.
>> Tout dwa.
Epi, koulye a sa k ap pase?
Bon.
Nou ap toujou sa ki annapre yo sourit jis tankou anvan,
Men, lè nou ale nan sourit la, nou te gen jig sa a brit.
Ki sa ki k ap pase sou la?
Oke, nan vektè nou an matematik, sonje nou te
pran distans ki genyen ant a kurseur ak sant la nan imaj la?
Bon, kòm ki apwòch 0, nou kòmanse ap resevwa
tankou sa a sòt de konpòtman fou kote imaj la se sòt de
tankou osile alantou kurseur la.
Epi sa a, kreye jig sa a.
Epi sa a, reyèlman lèd.
Ak pwobableman ou pa fè sa vle jwèt ou fè sa,
sof si li nan kèk sòt de efè espesyal.
>> Se konsa, sa a, se rezon sa a genyen jis sa a abitrè
koupe nan senk piksèl, kote nou di si li nan nan yon espas senk piksèl, nou ap bon.
Nou pa bezwen pou avanse pou pi imaj la ankò.
Se konsa, sa a, se sa k ap pase a.
>> Se konsa, sa a, se bèl anpil li.
Ou kounye a konnen ki jan yo kreye yon fenèt, chaje yon imaj,
trase yon imaj bò fennèt la, jwenn D 'klavye, jwenn opinyon sourit,
gen nan yon pakèt moun sou lòt D 'ke ou pa ta
konnen kòman ou kapab jwenn si ou jis pase yon kèk minit gade nan kopi dokiman yo.
Se konsa, ou gen aktyèlman byen yon kèk zouti a jete ou an kounye a
yo ekri yon jwèt plen véritable.
>> Koulye a, tout jwèt bezwen kèk odyo, men dokiman an odyo
se tou trè bon.
Ak mwen se vle parye ke si ou konprann tout bagay sa yo
nou te pale de jodi a ak imaj yo, ak sifas yo,
fenèt yo, ak tout bagay, lè sa a n ap kalkile konnen API la odyo se pa
pral fè sa ki move.
Se konsa, mwen espere wè sa ou kreye ak SDL.