Предыдущая Следующая
В справочной системе XNA Game Studio Express (Programming Guide => Storage) вы найдете всю необходимую информацию о механизме сохранения различных данных на жестком диске. Особенно советую обратить внимание на пример с названием: How to: Serialize Data. В этом примере созданы два универсальных метода для записи данных на диск и их чтения. Эти методы очень легко использовать для сохранения игровых данных на жестком диске. Исходный код примеров не сложен, и, надеюсь, вы уже в силах разобраться с ним самостоятельно.
Две булевы переменные gameState и levelState устанавливаются в состояние false. Перейдем к игровому циклу в метод Update() и посмотрим, для чего нам понадобились эти две новые переменные.
©
220 Добавляем в игру новые уровни
Проект NewLevels 221
if(levelState == true) {
LevelSelect();
}
else if(menuState == true)
{
UpdateMouse();
}
else if(gameState == true)
{
Pause();
В этом блоке кода происходит выбор состояния игры на основе булевых переменных. Всего имеются четыре следующих состояния:
□ показывать меню, если menuState равно true;
□ играть в игру, если gameState равно true;
□ показывать межуровневый экран, если levelState равна true;
□ выйти в меню игры, если нажата клавиша Esc.
После того как пользователь вошел в игру, запускается работа метода UpdateMouse() и показ на экране монитора меню. Если пользователь выбрал команду Играть, то происходит выполнение следующего блока кода.
level = 1;
this.NewGaime(level); menuState = false; levelState = false; gameState = true;
В коде происходит присвоение переменной level значения уровня, на котором пользователь будет играть (здесь также можно читать данные из памяти, сохраненные ранее). Затем вызывается метод NewGame() , в параметр которого передается значение переменной level, а значит, и текущий уровень.
В методе NewGame() добавляется конструкция кода с оператором switch. На базе входящей переменной level оператор switch выбирает новые значения для каждого последующего уровня.
switch(curentLevel)
{
case 1:
scoreO = 5;
scorel = -2 0;
score2 = 5;
score3 = -2 0;
score4 = 5;
totalScore = 0;
endScore = 300; break;
case 2:
scoreO = 10;
scorel = -2 0;
score2 = 5;
score3 = -2 0;
score4 = 5;
totalScore = 0;
endScore = 600; break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
}
В игре было задано восемь уровней, и, честно говоря, я не сильно усердствовал, когда назначал баллы за подборы объектов и порог набранных очков. В реальной игре вам необходимо обязательно уделить этому моменту очень много времени и протестировать игру и все имеющиеся в ней уровни. Это очень важно, и от этого зависит интересность и состоятельность вашей игры. Естественно, что количество уровней в игре может быть любым, кроме того, вы можете добавить на каждый новый уровень новые объекты, фон и многое другое. Предыдущая Следующая
|