>> ROB Bowden: Hi.
Saya Rob.
Tertanya-tanya bagaimana untuk melaksanakan permainan ini?
Nah, mari kita keluar penyelesaian kakitangan.
>> Jadi, mari kepala pertama ke INIT fungsi-fungsi yang kita memberitahu anda untuk
melaksanakan pertama.
Yang pertama kita akan melihat pada ia adalah init dayung.
Baiklah, jadi ingat bahawa kita mahu mendayung untuk betul-betul berpusat di
paksi-x.
Oleh itu, kita perlu memikirkan di mana yang harus pergi.
>> Memandangkan lebar lembaga - yang juga hash ditakrifkan sehingga atas -
kita perlu menolak keluar lebar dayung dan membahagikan oleh 2, supaya
pusat dayung adalah dalam pusat lembaga.
Ingat bahawa x-koordinat merujuk kepada sudut kiri atas dayung,
dan jadi ini adalah tepat di mana kita mahu ia menjadi.
Y-menyelaras tidak kira sebanyak kerana kita boleh meletakkan
di mana sahaja yang kita mahu.
Oleh itu, kita instantiating dayung, kami telah warna hitam, kami telah mengisi kepada Benar
jadi ia satu diisi persegi panjang, dan kami kemudian menambah ia ke tetingkap dan kembali
dayung.
Dan itu sahaja untuk Memulakan dayung.
>> Ia akan menjadi sama untuk init papan angka.
Jadi, kita akan untuk memulakan label, kita akan untuk menetapkan warna untuk
kelabu cahaya - anda boleh memilih apa sahaja yang anda mahu - kita akan set fon untuk
sans serif 48 -
juga boleh memilih apa sahaja yang anda mahu -
kami akan menambahnya ke tingkap.
Sekarang send ini untuk menyokong tidak benar-benar perlu, ia hanya sekiranya sesuatu
lagi berlaku bertindih label.
Kemudian apabila kita menggunakan Mengesan Perlanggaran, Mengesan Collision akan mengesan lain
perkara sebelum ia mengesan label.
Tetapi yang benar-benar tidak memberi kesan kami dalam program ini.
>> Akhir sekali, kita mempunyai ini Update Scoreboard fungsi yang kita menulis.
Jadi mari kita lihat itu.
Sekarang, di sini kita melihat sesuatu yang hampir sama dengan apa yang
kita lihat dalam label.c itu.
Jadi kita mempunyai label -
penampan watak 12 aksara, yang hanya cukup untuk mengendalikan apa-apa
integer, negatif atau positif.
Kemudian kita menggunakan sprintf untuk menyalin mata ke dalam buffer itu.
Jadi s ini mengandungi rentetan yang mewakili bilangan mata.
>> Akhir sekali, kita menetapkan label kepada rentetan itu.
Dan kemudian kita perlu pusat label sekiranya kami telah pergi daripada sembilan kepada 10
mata dan kami telah beralih ia.
Oleh itu, kita mengira x dan y-koordinat label yang akan
mendapatkan lebar dan ketinggian tetingkap.
Walaupun, kita boleh juga hanya menggunakan pemalar Lebar dan hash Tinggi
ditakrifkan sehingga atas.
Kami juga mendapatkan lebar dan ketinggian label dan membahagi
bahawa dengan 2 ke pusat.
Dan kemudian kita menggunakan Set Lokasi untuk benar-benar meletakkannya di lokasi tersebut.
Jadi itu sahaja untuk init papan angka.
>> OK.
Bola Jadi init akan menjadi hampir sama untuk INIT dayung juga.
Kita lihat di sini bahawa kita menggunakan newgoval untuk instantiate bola baru.
Dan di sini kita menggunakan 2 kali jejari sebagai lebar bola, dan 2
kali jejari sebagai ketinggian bola.
Sekarang, juga untuk newgoval, x dan y-koordinat yang kita lulus dalam akan
untuk merujuk kepada sebelah kiri bahagian atas bola, yang sebenarnya
di luar bola itu sendiri.
Jadi untuk mendapatkan bola dengan tepat berpusat di lembaga, kita perlu lulus
lebar dibahagikan dengan 2 untuk pusat, dan kemudian tolak keluar jejari untuk menolak
pusat sebenar bola ke pusat lembaga.
Dan kita melakukan perkara yang sama bagi paksi-y, kecuali menggunakan
ketinggian dan bukannya lebar.
>> Jadi yang meletakkan bola di tengah.
Dan ini instantiates bola, menetapkan warna hitam, isi bola,
akhirnya menambah kepada tingkap dan mengembalikannya.
Dan itu sahaja untuk Memulakan bola.
>> Jadi sekarang mari kita lihat init bata yang lebih sedikit
rumit, tetapi ia cukup sama dengan init dayung.
Sekarang, pertama kita perlu memikirkan lebar setiap bata.
Ingatlah bahawa kita mempunyai pemalar yang dipanggil panggilan yang menentukan
beberapa tiang batu bata yang kita ada.
Jadi, kita akan menentukan lebar bata tunggal dengan mengambil lebar
daripada seluruh papan, menolak keluar saiz jurang kami -
yang hash ditakrifkan sehingga atas dan merujuk dengan bilangan piksel yang
perlu antara setiap bata -
dan sebagainya kita akan mempunyai sejumlah kali jurang panggilan piksel kosong di dalam satu
barisan tunggal.
Dan yang juga akan merujuk kepada beberapa kosong piksel ke kiri dan kanan
lajur dan bata lajur kanan kiri.
>> Jadi tolak daripada orang-orang piksel kosong meninggalkan kita dengan beberapa piksel yang
bata sebenarnya menggunakan.
Dan kemudian kita bagi dengan panggilan untuk mendapatkan bilangan piksel per bata.
Jadi di sini kita menentukan satu pameran yang hanya menentukan warna yang kita mahu bagi setiap
deretan bata.
Jika kita mempunyai lebih baris bata daripada warna yang kita dinyatakan, kita akan melihat
bahawa kita akan hanya gelung kembali sekitar dan menggunakan merah lagi, dan kemudian oren dan
kuning dan sebagainya.
>> Jadi, seperti yang p-menetapkan pembayang spec, kami akan gelung ke atas semua baris dan
ruangan batu bata.
Tetapi sebelum gelung kita lebih ruang, kita lihat di sini bahawa kita menyatakan
y kedudukan setiap bata berturut-turut tersebut.
Kami juga boleh bergerak ini ke dalam kedua untuk gelung, tetapi kemudian kita akan hanya menjadi
melakukan pengiraan berulang lagi apabila kita tidak perlu.
>> Jadi kedudukan y bata itu akan menjadi margin, yang hash
ditakrifkan sehingga atas dan hanya merujuk kepada ruang antara bahagian atas papan dan
permulaan semua batu bata.
Dan kita akan menambah bahawa barisan bahawa kita pada kali ketinggian satu
bata individu ditambah jurang yang ada di antara setiap bata.
Jadi ini juga merupakan menegak jurang antara setiap bata.
Supaya memberikan kita y-menyelaras bata.
>> Jadi di sini kita akan mengira x-koordinat bata.
Sekarang, kita mempunyai jurang dibahagikan dengan 2 kerana, ingat sebelum ini, saya berkata bahawa pada
sebelah kiri lembaga, kita akan untuk meninggalkan ruang sedikit.
Jadi jurang dibahagikan dengan 2 ruang itu.
Dan maka kita menambah bahawa ruang bahawa kita pada kali ditambah lebar
jurang, di mana lebar adalah jumlah ruang bahawa bata tunggal mengambil dan
maka jurang adalah ruang antara setiap bata.
Supaya mengira x-menyelaras bata.
>> Sekarang kita hanya perlu instantiate yang bata memandangkan x dan y-menyelaras
menggunakan lebar yang kita dikira bagi setiap ketinggian bata, dan rehat yang
hash ditakrifkan sehingga atas.
Kami menetapkan warna bata.
Notis kita menggunakan pelbagai warna dan kita lulus dalam barisan yang berada
pada warna num arena yang akan membuat kami balut kembali sekitar ke merah jika kita
mempunyai lebih daripada baris warna.
Akhir sekali, kami akan mengisi bata warna dan menambah kepada tingkap.
>> Dan itu sahaja.
Jadi, itu sahaja untuk semua kami kaedah pengawalan.
Sekarang kita perlu melihat manakala gelung yang anda terpaksa mengisi masuk
Jadi di sini kita melihat bahawa ini adalah sementara kami gelung yang akan berterusan sehingga
permainan berakhir, yang sama ada cara kita kehabisan nyawa atau
kita kehabisan bata.
>> Perkara itu kita mempunyai adalah Tunggu Klik.
Jadi permainan menunggu untuk kita untuk benar-benar klik sebelum bola mula bergerak.
Dan kemudian kita akan untuk SUSUTAN nyawa.
Jadi jika kita mempunyai tiga nyawa, sekarang kita ke dua kehidupan, kita menggunakan kami
kehidupan ketiga.
Kita akan ke pusat bola.
Jadi sekarang, ini tidak benar-benar akan membantu kami di kehidupan yang pertama kita bermain
kerana bola sudah akan telah berpusat dari apabila kita
dengan serta-merta ia.
Tetapi kita lihat apabila kita akhirnya kehilangan kehidupan dan gelung kembali sekitar, maka kami
akan mahu recenter bola dari bahagian bawah papan belakang untuk
pusat.
>> Jadi, di sini kita perlu menjana halaju x bola.
Dan, seperti spec, kami menggunakan d rand 48 untuk menjana beberapa nombor rawak
untuk menentukan halaju.
Kami menambah satu dengan kerana kita hanya mahu halaju dalam lingkungan satu
dua daripada sifar kepada satu.
Akhir sekali, kami menggunakan d rand 48 sekali lagi pada untuk menentukan sama ada bola
akan bergerak ke kiri atau kanan untuk memulakan.
>> Jadi d rand 48 mengembalikan nombor rawak antara sifar dan satu, dan sebagainya dengan meminta
jika itu kurang daripada 0.5, kami mempunyai 50 50 peluang beralih halaju
bola menjadi negatif.
Akhir sekali, kita menetapkan halaju menegak bola hanya ada beberapa yang berterusan.
Kami memilih tiga.
Dan sekarang kita mempunyai gelung lain.
>> Jadi gelung dalaman ini adalah akan diteruskan.
Perhatikan di sini, manakala batu-bata adalah lebih besar daripada sifar -
jadi jika kita kehabisan bata, kami telah memenangi permainan dan kita boleh
keluar daripada gelung ini -
dan semua Dapatkan y Bola kurang daripada ketinggian tolak 2 kali jejari.
Jadi apa ini mengiktiraf adalah jika bola melintasi lalu dayung, dalam
mana anda telah kehilangan kehidupan.
>> Melihat di dalam ini untuk gelung kita mempunyai yang mendaftar untuk acara tetikus.
Justeru, jika ada acara tetikus, yang bermakna kita mahu memeriksa untuk
melihat jika tetikus telah dipindahkan, dan jika tetikus telah dipindahkan, kita mahu mempunyai
dayung bersaing dengan tetikus.
Jadi, untuk berbuat demikian, kita mengira baru kedudukan dayung, yang akan
untuk merebut kedudukan tetikus - yang menangkap kedudukan yang menggunakan
peristiwa yang kita telah diluluskan -
dan kemudian kita akan menolak keluar lebar dayung dibahagikan dengan 2, maka
penginapan dayung berpusat pada tetikus bukan sebelah kiri dayung
tinggal berpusat.
>> Jadi sekarang kita juga mahu memastikan bahawa kita tidak pergi ke sebelah kiri atau kanan
tepi papan.
Dan jadi di sini kami hanya memeriksa jika dayung akan jauh di sebelah kiri
lembaga, hanya melekat ia ke sebelah kiri.
Dan di sini kita memeriksa jika dayung akan menjadi lebih daripada sebelah kanan yang
lembaga, hanya melekat ke sebelah kanan.
Dan akhirnya, kita sebenarnya ditetapkan lokasi dayung.
>> Sekarang, jika tidak ada pergerakan tetikus, ini bermakna kita akan
mahu menggerakkan bola.
Dan dengan itu kita sudah mempunyai x dan y halaju bola itu
dan dengan itu kita menggerakkannya.
Tetapi sekarang kita ingin mengesan pasangan sesuatu.
Jadi di sini kita sedang mengesan jika kita mencapai sama ada sebelah kiri atau kanan
lembaga, kami mahu bola itu melantun.
Dan sebagainya, dalam kes itu, kita menetapkan x halaju untuk x halaju negatif.
>> Jika bola terkena bahagian atas papan, maka kita juga mahu melantun bola.
Tetapi sekarang kita mahu menukar halaju y.
Notis kita tidak mempunyai keadaan untuk bola memukul bahagian bawah
lembaga sejak yang sudah ditangkap di sini di gelung selama ini.
>> Akhir sekali, kami ingin mengesan beberapa perlanggaran mana jika hit bola
sama ada kayuh atau bata, kita mahu untuk melakukan beberapa perkara kes khas.
Jadi, jika terdapat perlanggaran, di mana objek kes tidak akan batal, maka,
jika objek memukul dayung, kami akan hanya mahu melantun bola.
Dan di sini, juga, kita menetapkan lokasi bola hanya di atas dayung.
Notis kami mengambil kedudukan x bagi bola dan hanya menggunakan semula itu.
Tetapi di sini kita mendapat kedudukan y satu dayung dan bergerak bola
atas dayung.
>> Ini adalah kes khas supaya bola tidak memukul dayung dan kemudian,
sebelum ia dapat bergerak di luar dayung, gelung lain yang berlaku di sekeliling dan
difikirkannya ia masih pada panel dan jadi halaju y mendapat anjakan untuk
negatif dan kemudian bola hanya jenis kayu melantun pada dayung.
Jadi, jika kita tidak memukul dayung, maka kita juga mahu menyemak
jika kita memukul bata.
Dan hal ini ialah bagaimana kita boleh menyemak untuk melihat jika kita memukul bata.
>> Kita perlu untuk memeriksa ini kerana kami boleh sebenarnya melanda label dan kita
tidak mahu mengeluarkan label.
Jadi, jika kita mencapai bata, kita boleh mengeluarkan yang bata dari tingkap, susutan
kiraan kami daripada batu-bata, kenaikan kami beberapa mata, dan sekarang kita perlu
mengemaskini papan mata yang betul-betul yang sama seperti yang kita lihat sebelum ini apabila kita melihat
INIT papan angka.
Tetapi sekarang kita hanya mengemaskini papan mata kerana kita telah mengubah
beberapa mata.
Dan ia kini harus memaparkan bahawa kita mencapai satu lagi rehat.
>> Dan akhirnya, jika kita memukul bata kami juga mahu melantun.
Jadi akhirnya, kita berhenti sejenak hanya supaya bola tidak bergerak super pantas dan kami
sebenarnya boleh memukul dengan dayung kami.
Dan itu cukup banyak ia.
Jadi sekarang kita akan gelung kembali ke bahagian atas gelung selama ini dan berterusan sehingga
sama ada kita kehilangan nyawa atau kita kehabisan bata.
>> Apakah yang akan berlaku jika kita kehilangan nyawa?
Kemudian kita akan keluar selama ini gelung, dan kita akan melihat gelung akan menyokong
ke bahagian atas gelung manakala luar.
Di mana, kita akan melaksanakan ini ditubuhkan lagi.
Dan ini ditubuhkan akan mempunyai kita tunggu untuk klik, SUSUTAN bilangan kami
nyawa, recenter bola, mengira semula x dan y halaju, dan
kemudian menyambung semula permainan.
>> Dan sebagainya, yang akan berterusan sehingga sama ada bata berakhir menjadi kurang daripada
atau sama dengan sifar -
di mana kita memenangi permainan -
atau kehidupan adalah kurang daripada sifar, di mana kes kita telah kehilangan permainan.
Jadi, sekali itu berlaku, kami keluar itu gelung sementara, dan kita mencapai di sini
di mana kita akan menunggu klik sebelum keluar permainan supaya
permainan tidak hanya dengan serta-merta ditutup pada kami.
Dan akhirnya kita akan menutup tingkap dan itu sahaja.
Nama saya Rob, dan ini adalah Breakout.