
- •Аннотация
- •Содержание:
- •Введение
- •Основная часть
- •Функциональное назначение
- •Проектирование структуры приложения
- •Разработка алгоритмов достижения заданной функциональности игры
- •Блок-схема, осуществляющая случайную расстановку плиток.
- •Блок схема метода осуществляющего движение плиток.
- •Блок-схема метода осуществляющего проверку победы.
- •Разработка элементов приложения
- •Описание основных классов игры
- •Разработка двумерных изображений.
- •Разработка 2d спрайтовой анимации.
- •Организация файлов
- •Разработка инсталлятора.
- •Тестирование приложения
- •Техническое обеспечение и программные средства
- •Заключение
- •Список литературы
- •Приложения
- •Приложение №1. Используемые шрифты.
- •Приложение №2. Методы, реализующие основную логику игры.
- •Приложение №3. Примеры текстовых файлов.
Разработка двумерных изображений.
Спрайты повсеместно используются в играх, особенно в 2д-играх. Изначально под термином “спрайты” подразумевали небольшие графические картинки, которые выводились на экран. Спрайты в наше время представляют из себя текстуру и (обычно) квадрат, на который эта текстура “натягивается”[1].
В приложении для спрайтов используются изображения в формате «png». Для спрайтов кнопок и фона используются фиксированные изображения, а основные спрайты игры создаются на основе случайно выбранного изображения. Такой подход позволяет создать непредсказуемый для пользователя расклад, что исключает возможность запоминания месторасположения плиток и одинаковое прохождение игры.
Спрайтовая анимация основывается на наличии изображений 9,15 или 24 плиток на поле. Игроку требуется передвигать плитки на пустую позицию до тех пор, пока не соберётся изображение целиком или не закончится время. Передвижение осуществляется посредством нажатие левой кнопки мыши по изображению, и если соседняя клетка свободна, то оно передвигается на неё. Когда игра пройдена или время закончилось, выводится соответствующее сообщение, и поле с картинками становится неактивным, т.е. пользователь уже не может совершать передвижения.
На рисунках 6 и 7 представлены спрайты кнопок.
Изображения для основных спрайтов игры можно увидеть на рисунке 8.
Названия спрайтов и соответствующие им файлы изображений представлены в таблице 2.
Рисунок 6. Спрайт с кнопкой «Играть».
Рисунок 7. Спрайт с кнопкой «Выход».
Рисунок 8. Изображения для основных спрайтов игры
Разработка 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 |
Создание игровых экранов.
Фоновые изображения подключаются к проекту, как картинки формата .PNG. В игре реализовано 2 игровых экрана: меню (см. рис.10) и уровень (см. рис.11).
Рисунок 10. Фон меню.
Рисунок 11. Фон уровня.
Разработка меню
Структура главного меню представлена на рисунке 12.
Рисунок 12. Схема главного меню.
Подключение звуковых эффектов
В приложении используется 2 звуковых эффекта.
Фоновая мелодия («Level_1.mp3, Level_2.mp3, Level_3.mp3, Menu.mp3»), которая воспроизводится в меню и уровнях с момента запуска приложения.
Мелодия передвижения («Plita.wav»), запускающаяся вместе с передвижением плитки.
Все звуки в игре подключены как Song.
Подключение шрифтов
Для вывода различных текстовых сообщений используются объекты класса SpriteFont. Для работы со шрифтами создаются файлы с расширением .spritefont. Приложение использует 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");
}