Предыдущая Следующая
Подсчет очков 207
Переходим к работе над проектом и в классе Game1 в области глобальных переменных класса Game1 объявим пять новых переменных.
int scoreO, score1, score2, score3, score4;
Все пять переменных пока не имеют никаких значений, и нам необходимо инициализировать их. В методе Initialize() зададим каждой переменной нулевое значение, поскольку игрок еще не поймал ни одного объекта.
// Обнуляем имеющиеся очки
scoreO = 0;
score1 = 0;
score2 = 0;
score3 = 0;
score4 = 0;
Теперь мы имеем пять переменных для каждого падающего объекта. Чтобы начислить одно очко за каждый пойманный объект или подсчитать количество пойманных объектов, нам необходимо при столкновении ковра-самолета с одним из объектов увеличить соответствующую переменную. Посмотрите на исходный код обработки столкновения для падающего объекта под номером два.
if (bbplatform.Intersects(bb[2]))
{
sprite[2].spritePosition = new Vector2(rand.Next(5 0, screenWidth -sprite[2].spriteTexture.Width / 12 - 50), -500); score2 += 1;
}
В этом коде видно, что как только ковер-самолет ловит объект или происходит пересечение двух ограничивающих прямоугольников, значение переменной score2 увеличивается на единицу. Для этого используется упрощенный вариант увеличения значения на единицу, но если развернуть эту строку кода, то она будет выглядеть вот так:
score2 = score2 + 1;
Точно такой же подход при подсчете очков необходимо использовать и для оставшихся четырех объектов (см. листинг 11.3). В том случае если вашей целью является только подсчет падающих предметов, то в коде можно создать массив данных для подсчета очков (если нужно считать очки по каждому объекту) или выделить одну переменную для общего подсчета всех очков.
// очки по каждому объекту в массиве данных score[i] += 1;
// подсчет общего количества очков для всех объектов разом score += 1;
208 Подсчет очков и вывод текста на экран
Здесь все определяет общая стратегия игры. Например, при столкновении ковра-самолета и объекта (который ловить не нужно) можно отнимать набранные баллы как по каждой переменной отдельно, так и по общему количеству очков:
Score2 -= 1;
или
score -= 1;
При этом если вы ведете подсчет жизней игрока, то за каждое ненужное столкновение ковра и объекта, кроме уменьшения очков, можно также уменьшать игровую жизнь пользователя или даже уменьшать время, отведенное на игру. Повторюсь, все определяет игровая стратегия, которую необходимо очень тщательно продумать. Предыдущая Следующая
|