>> 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, так что
весло остается в центре мыши вместо левой стороне лопасти
оставаясь по центру.
>> Так что теперь мы также хотим быть уверены, что мы не идут по левой стороне или вправо
сторона платы.
И вот мы только проверки, если весло бы от левой стороны
доска, просто придерживаться это к левой стороне.
И вот мы проверяем, если весло бы над правой стороны
доска, просто придерживаться его на правой стороне.
И, наконец, мы на самом деле установить расположение весла.
>> Теперь, если бы не было движение мыши, это означает, что мы собираемся
хотите переместить мяч.
И так у нас уже есть х и у скорость шарика
и поэтому мы его переместить.
Но теперь мы хотим, чтобы обнаружить пара вещей.
Так вот мы обнаружения, если мы попали либо левая или правая сторона
доска, мы хотим, чтобы мяч, чтобы подпрыгнуть.
Так вот, в этом случае, мы устанавливаем х скорость к отрицательному х скорости.
>> Если мяч попал в верхней части платы, то мы также хотим мяч отказов.
Но теперь мы хотим изменить у скорость.
Обратите внимание, мы не имеем условие для Мяч, коснувшийся дна
доска, так как это был уже захвачен здесь, в этом время цикла.
>> Наконец, мы хотим, чтобы обнаружить некоторые столкновения, где, если мяч попал
либо весло или кирпич, мы хотим сделать некоторые специальные тематические вещи.
Так что, если произошло столкновение, в котором объекты случае не будет иметь законной, то,
если объект попал весло, мы бы просто хочу, чтобы подпрыгнуть шар.
И здесь, кроме того, мы установить местоположение мяч чуть выше веслом.
Обратите внимание, мы берем х положение мяч и просто повторное использование, что.
Но здесь мы получаем позицию у весла и перемещение мяча
выше лопасти.
>> Это особый случай, так что мяч не попал в весло, и тогда,
прежде чем это в состоянии двигаться от весла, другой цикл проходит вокруг и
он считает, что это все еще на панели и так что скорость у получает набор обратно
отрицательный, а затем мяч только отчасти палочек подпрыгивая на весла.
Так что, если мы не попал весло, то мы также хотим, чтобы проверить
если мы попали в кирпич.
И так это то, как мы можем проверить чтобы увидеть, если мы попали в кирпич.
>> Мы должны проверить это, потому что мы можем фактически попал в этикетку и мы
не хочу, чтобы удалить метку.
Так что, если мы попали кирпич, мы можем удалить, что кирпич из окна, декремента
наш кол-во кирпичей, увеличить наш число точек, и теперь мы должны
обновить табло, которое в точности так же, как мы видели раньше, когда мы увидели
инициализации табло.
Но сейчас мы просто обновления табло, так как мы изменились
число точек.
И теперь оно должно отображать, что мы попали еще один перерыв.
>> И, наконец, если мы попали кирпич мы также хотим, чтобы подпрыгнуть.
И в конце концов, мы делаем паузу, чтобы убедиться, что Мяч не движется супер быстрый, и мы
может на самом деле ударил его с нашим весла.
И это в значительной степени он.
Так что теперь мы бы возврат к началу цикла в начало это в то время как цикл и будет продолжаться до
либо мы потеряете жизнь или мы бежим из кирпича.
>> Что произойдет, если мы потеряете жизнь?
Тогда мы собираемся выйти из этого время цикл, и мы увидим, будет возвращаться до
к верхней части наружной время цикла.
В таком случае, мы собираемся совершающих это настроить снова.
И это настроить будет иметь нас ждать за клик, уменьшить наш номер
жизней, центрирования мяч, пересчитать х и у скорость и
затем возобновить игру.
>> И так, что будет продолжать, пока либо кирпич заканчивает тем, что меньше, чем
или равно нулю -
в этом случае мы выиграли игру -
или жизнь меньше нуля, в которых случай мы проиграли.
Так, однажды, что это так, мы вырваться этого время цикла, и мы достигнем здесь
где мы собираемся ждать клик перед выходом из игры так, чтобы
Игра не просто немедленно закрыть на нас.
И, наконец, мы закроем окна и все тут.
Меня зовут Боб, и это было отрыва.