Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

В справочной системе 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;

}

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


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz