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.