Предыдущая Следующая
Проект NewLevels 251
Две булевы переменные gameState и levelState устанавливаются в состояние false. Перейдем к игровому циклу в метод Update() и посмотрим, для чего нам понадобились эти две новые переменные.
if(levelState == true) {
}
if(menuState == true)
{ }
if(gameState == true)
{
В этом блоке кода происходит выбор состояния игры на основе булевых переменных. Всего имеются три состояния:
□ показывать меню, если menuState равно true;
□ играть в игру, если gameState равно true;
□ показывать межуровневый экран, если levelState равна true.
После того как пользователь вошел в игру, запускается работа меню. Если пользователь выбрал команду Играть, то происходит выполнение следующего блока кода:
level = 1;
this.NewGame(level); menuState = false; levelState = false; gameState = true;
В коде происходит присвоение переменной level значения уровня, на котором пользователь будет играть (здесь также можно читать данные из памяти, сохраненные ранее). Затем вызывается метод NewGame() , в параметр которого передается значение переменной level, а значит, и текущий уровень.
В методе NewGame() добавляется конструкция кода с оператором switch. На базе входящей переменной level оператор switch выбирает новые значения для каждого последующего уровня.
switch(curentLevel)
{
case 1:
scoreO = 5;
scorel = -20;
score2 = 5;
score3 = -20;
score4 = 5; totalScore = 0;
endScore = 100;
252 Добавляем в игру новые уровни
break;
case 2:
scoreO = 10;
scorel = -20;
score2 = 5;
score3 = -20;
score4 = 5;
totalScore = 0;
endScore = 200; break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
}
В игре было задано восемь уровней, и, честно говоря, я не сильно усердствовал, когда назначал баллы за подборы объектов и порог набранных очков. В реальной игре вам необходимо обязательно уделить этому моменту очень много времени и протестировать игру и все имеющиеся в ней уровни. Это очень важно, и от этого зависят интересность и состоятельность вашей игры. Естественно, что количество уровней в игре может быть любым, кроме того, вы можете добавить на каждый новый уровень новые объекты, фон и многое другое.
Когда будете создавать конструкцию кода с использованием оператора switch, не забывайте в конце очередного блока case прописывать ключевое слово break. Иначе у вас вместо блочной работы этой конструкции будет происходить ее построчное выполнение.
В игровом процессе, как только пользователь достигает верхней планки очков, назначенных на текущий уровень, происходит вызов следующего блока исходного кода: Предыдущая Следующая
|