>> 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, так що
весло залишається в центрі миші замість лівій стороні лопаті
залишаючись по центру.
>> Так що тепер ми також хочемо бути впевнені, що ми не йдуть по лівій стороні або вправо
сторона плати.
І ось ми тільки перевірки, якщо весло б від лівого боку
дошка, просто дотримуватися це до лівої сторони.
І ось ми перевіряємо, якщо весло б над правого боку
дошка, просто дотримуватися його на правій стороні.
І, нарешті, ми насправді встановити розташування весла.
>> Тепер, якби не був рух миші, це означає, що ми збираємося
хочете перемістити м'яч.
І так у нас вже є х і у швидкість кульки
і тому ми його перемістити.
Але тепер ми хочемо, щоб виявити пара речей.
Так от ми виявлення, якщо ми потрапили або ліва або права сторона
дошка, ми хочемо, щоб м'яч, щоб підстрибнути.
Так от, в цьому випадку, ми встановлюємо х швидкість до негативного х швидкості.
>> Якщо м'яч потрапив у верхній частині плати, то ми також хочемо м'яч відмов.
Але тепер ми хочемо змінити у швидкість.
Зверніть увагу, ми не маємо умову для М'яч, що досягне дна
дошка, так як це був уже захоплений тут, в цьому час циклу.
>> Нарешті, ми хочемо, щоб виявити деякі зіткнення, де, якщо м'яч потрапив
або весло або цегла, ми хочемо зробити деякі спеціальні тематичні речі.
Так що, якщо відбулося зіткнення, в якому об'єкти випадку не буде мати законної, то,
якщо об'єкт потрапив весло, ми б просто хочу, щоб підстрибнути кулю.
І тут, крім того, ми встановити місце розташування м'яч трохи вище веслом.
Зверніть увагу, ми беремо х становище м'яч і просто повторне використання, що.
Але тут ми отримуємо позицію у весла і переміщення м'яча
вище лопаті.
>> Це особливий випадок, так що м'яч не потрапив до весло, і тоді,
перш ніж це в змозі рухатися від весла, другий цикл проходить навколо і
він вважає, що це все ще на панелі і так що швидкість у отримує набір назад
негативний, а потім м'яч тільки почасти паличок підстрибуючи на весла.
Так що, якщо ми не потрапив весло, то ми також хочемо, щоб перевірити
якщо ми потрапили в цеглу.
І так це те, як ми можемо перевірити щоб побачити, якщо ми потрапили в цеглу.
>> Ми повинні перевірити це, тому що ми можемо фактично потрапив в етикетку і ми
не хочу, щоб видалити мітку.
Так що, якщо ми потрапили цегла, ми можемо видалити, що цегла з вікна, декремента
наш кол-во цегли, збільшити наш число точок, і тепер ми повинні
оновити табло, яке в точності так само, як ми бачили раніше, коли ми побачили
ініціалізації табло.
Але зараз ми просто поновлення табло, так як ми змінилися
число точок.
І тепер воно має відображати, що ми потрапили ще одна перерва.
>> І, нарешті, якщо ми потрапили цегла ми також хочемо, щоб підстрибнути.
І врешті-решт, ми робимо паузу, щоб переконатися, що М'яч не рухається супер швидкий, і ми
може насправді вдарив його з нашим весла.
І це значною мірою він.
Так що тепер ми б повернення до початку циклу в початок це в той час як цикл і триватиме до
або ми втратите життя або ми біжимо з цегли.
>> Що станеться, якщо ми втратите життя?
Тоді ми збираємося вийти з цього час цикл, і ми побачимо, буде повертатися до
до верхньої частини зовнішньої час циклу.
У такому випадку, ми збираємося вчиняють це налаштувати знову.
І це налаштувати матиме нас чекати за клік, зменшити наш номер
життів, центрування м'яч, перерахувати х і у швидкість і
потім відновити гру.
>> І так, що продовжуватиме, поки або цегла закінчує тим, що менше, ніж
або дорівнює нулю -
в цьому випадку ми виграли гру -
або життя менше нуля, в яких випадок ми програли.
Так, одного разу, що це так, ми вирватися цього час циклу, і ми досягнемо тут
де ми збираємося чекати клік перед виходом з гри так, щоб
Гра не просто негайно закрити на нас.
І, нарешті, ми закриємо вікна і все тут.
Мене звуть Боб, і це було відриву.