Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Изменение положения труб в игре.




И так, у нас есть список с (пока что) одним элементом внутри. Теперь разберемся, как же можно двигать трубы.

Здесь все весьма похоже на то, как мы двигали птичку. С тем лишь исключением, что птичка летает вверх и вниз, а трубы движутся справа налево.

Так что давай напишем функцию, которая будет обновлять положение труб на экране.

Эта функция будет проходить по каждой ячейке списка, сохранять значение ячейки в отдельную переменную, обновлять её свойства и записывать её обратно в список.
 
Вызывать эту функцию нужно на при каждом обновлении экрана (что весьма логично).


Если у тебя все правильно, то труба проплывет по экрану и исчезнет за левым краем. И на этом будет все. Больше трубы не появятся. Для того, чтобы трубы продолжали двигаться по экрану, нужно продолжать их добавлять.

Но просто так их добавлять нельзя - нужно определить, в какой момент нужно добавлять трубы. В игре трубы появляются с определенным промежутком. Нам тоже нужно сделать так, чтобы трубы появлялись через определенные интервалы времени. Сделать это достаточно просто - для этого всего лишь нужно следить сколько времени прошло с момента последнего добавления труб. Как только эта величина становится больше некоторого порогового значение, нужно добавить новую трубу.

Вот последовательность действий, как это можно все реализовать:

1) Создать переменную time для хранения времени, прошедшего с момента последнего добавления трубы

2) Создать переменную для хранения порогового значения времени

3) На каждом шаге увеличивать значение переменной time на интервал таймера

4) Если значение переменной больше порогового значения, добавить в список новый объект и установить значение time = 0;

Теперь трубы будут добавляться через определенные промежутки времени.

На этом мы завершим данное занятие. Если у тебя все получилось, то ты отлично поработал!

 

11.5. Game Over!

Ну и наконец, нам нужно проверять условия окончания игры. Игра заканчивается тогда, когда птичка врезается в одну из труб. Как ты помнишь из предыдущих тем, определить, пересекаются два прямоугольника или нет можно с помощью метода Intersects. Мы снова воспользуемся им для определения пересечений.

Нам снова нужно будет модифицировать функцию обработчика событий таймера Tick.

Но прежде, давай создадим функцию, которая будет проверять, пересекается ли птичка с какой либо трубой. Если птичка пересекается с трубой, будем возвращать из функции значение true, если нет - false.

Сначала функция пробегает по всем элементам списка и проверяет, выполняется ли хотя бы одно из условий (пересекается ли птичка с верхней или нижней трубой). Если да - из функции возвращается значение true (о типе возвращаемого значения говорит ключевое слово bool в описании функции).

 

 

 











Последнее изменение этой страницы: 2018-05-10; просмотров: 157.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...