Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PZ_Curs_TRPO_Pyatnashki_romaferox.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
8.49 Mб
Скачать
  1. Разработка двумерных изображений.

Спрайты повсеместно используются в играх, особенно в 2д-играх. Изначально под термином “спрайты” подразумевали небольшие графические картинки, которые выводились на экран. Спрайты в наше время представляют из себя текстуру и (обычно) квадрат, на который эта текстура “натягивается”[1].

В приложении для спрайтов используются изображения в формате «png». Для спрайтов кнопок и фона используются фиксированные изображения, а основные спрайты игры создаются на основе случайно выбранного изображения. Такой подход позволяет создать непредсказуемый для пользователя расклад, что исключает возможность запоминания месторасположения плиток и одинаковое прохождение игры.

Спрайтовая анимация основывается на наличии изображений 9,15 или 24 плиток на поле. Игроку требуется передвигать плитки на пустую позицию до тех пор, пока не соберётся изображение целиком или не закончится время. Передвижение осуществляется посредством нажатие левой кнопки мыши по изображению, и если соседняя клетка свободна, то оно передвигается на неё. Когда игра пройдена или время закончилось, выводится соответствующее сообщение, и поле с картинками становится неактивным, т.е. пользователь уже не может совершать передвижения.

На рисунках 6 и 7 представлены спрайты кнопок.

Изображения для основных спрайтов игры можно увидеть на рисунке 8.

Названия спрайтов и соответствующие им файлы изображений представлены в таблице 2.

Рисунок 6. Спрайт с кнопкой «Играть».

Рисунок 7. Спрайт с кнопкой «Выход».

Рисунок 8. Изображения для основных спрайтов игры

  1. Разработка 2d спрайтовой анимации.

Анимация – это частая смена кадров, создающая видимость движения объекта.

В данной игре используется анимированный спрайт салюта. Анимация воспроизводится при выигрыше. Данный спрайт расположен в файле salut.png и представлен на рисунке 9.

Рисунок 9. Спрайт «salut».

Таблица №2. Список спрайтов

Название спрайта

Название файла

Спрайт «Кнопка продолжить»

Continew_but.png

Спрайт «Кнопка закончить»

End_but.png

Спрайт «Кнопка выход»

Exit_but.png

Спрайт «Кнопка игра»

Game_but.png

Спрайт «Кнопка в меню»

Menu_but.png

Спрайт «Кнопка заного»

Returrn_but.png

Cпрайт «Кнопка рекорды»

score_but.png

Спрайт «Кнопка перемешать»

Sort_but.png

Спрайт «Салют»

Salut.png

Спрайт «Фон меню»

Fon1.PNG

Спрайт «Фон уровня»

Fon1_2.PNG

Спрайт «Основное изображение первого уровня»

Level1.png

Спрайт «Основное изображение второго уровня»

Level2.png

Спрайт «Основное изображение третьего уровня»

Level3.png

Спрайт «Пример изображения первого уровня»

Skin1.png

Спрайт «Пример изображения второго уровня»

Skin2.png

Спрайт «Пример изображения третьего уровня»

Skin3.png

  1. Создание игровых экранов.

Фоновые изображения подключаются к проекту, как картинки формата .PNG. В игре реализовано 2 игровых экрана: меню (см. рис.10) и уровень (см. рис.11).

Рисунок 10. Фон меню.

Рисунок 11. Фон уровня.

  1. Разработка меню

Структура главного меню представлена на рисунке 12.

Рисунок 12. Схема главного меню.

  1. Подключение звуковых эффектов

В приложении используется 2 звуковых эффекта.

  1. Фоновая мелодия («Level_1.mp3, Level_2.mp3, Level_3.mp3, Menu.mp3»), которая воспроизводится в меню и уровнях с момента запуска приложения.

  2. Мелодия передвижения («Plita.wav»), запускающаяся вместе с передвижением плитки.

Все звуки в игре подключены как Song.

  1. Подключение шрифтов

Для вывода различных текстовых сообщений используются объекты класса SpriteFont. Для работы со шрифтами создаются файлы с расширением .spritefont. Приложение использует 1 тип шрифтов, представленные в Приложении №1.

  1. Организация таблицы рекордов

Основу организации таблицы рекордов составляет работа с файлами. Два основных действия: чтение из файла и запись в файл. Когда игрок прошел все три уровня либо вышел после прохождения одного из уровней, высвечивается сообщение, в котором он должен ввести свое имя. Введенное им имя записывается в текстовый файл с именем «Name», а набранные им очки записываются в текстовый файл с именем «Score».

Чтение из файла осуществляется с помощью функций ReadNameRecordFile() – чтение имени из файла и ReadScoreRecordFile() – чтение очков из файла.

string[] ReadNameRecordFile()

{

string[] phrase = { "" };

string path = @"Name.txt";

if (File.Exists(path))

{

phrase = File.ReadAllLines(path, System.Text.Encoding.UTF8);

}

return phrase;

}

string[] ReadScoreRecordFile()

{

string[] score = { "" };

string path = @"Score.txt";

if (File.Exists(path))

{

score = File.ReadAllLines(path, System.Text.Encoding.UTF8);

}

return score;

}

Запись в файлы осуществляется после ввода имени и нажатия клавиши Enter:

if (oldKeyboardState.IsKeyDown(Keys.Enter) && keyboardState.IsKeyUp(Keys.Enter))

{

string path = @"Name.txt";

string path1 = @"Score.txt";

string score1 = Convert.ToString(score);

FileInfo file = new FileInfo(path);

FileInfo file1 = new FileInfo(path1);

File.AppendAllText(path, CurrentWord);

File.AppendAllText(path, "\r\n");

File.AppendAllText(path1, score1);

File.AppendAllText(path1, "\r\n");

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]