Компьютерная программа, реализующая игру "Арканоид" - Курсовая работа

бесплатно 0
4.5 95
Разработка компьютерной программы, которая реализует игру "Арканоид". Освоение приемов программирования на языке С с использованием средств OpenGL, разбор структуры и логики игры, приобретение навыков работы с 3D графикой. Руководство пользователя.


Аннотация к работе
ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ 2.1 ПАРАМЕТРЫ СЦЕНЫ И ФИГУР 2.2 АЛГОРИТМ РАБОТЫ ПРОГРАММЫ 4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ ЗАКЛЮЧЕНИЕ ЛИТЕРАТУРА ПРИЛОЖЕНИЕ ВВЕДЕНИЕ Цель данной курсовой работы - создать программу, реализующую игру «Арканоид». Основными задачами, решаемыми в ходе выполнения курсовой работы являются освоение приемов программирования на языке С с использованием средств OpenGL, разбор структуры и логики игры, приобретение навыков работы с 3D графикой. 1. На главном окне программы имеется меню, состоящее из двух пунктов: «Игра» и «Справка». 3): · «Новая игра»; · «Уровень сложности»; · «Выход». Рис. 3. Интерфейс класса Ball: class Ball { public: float x, y, // координаты центра dx, dy, // скорость по координатам r, // радиус v; // скорость bool active; // движется ли мяч short series; // количество кирпичей в серии //конструктор Ball(): x(), y(), v(SPEED), r(), dx(), dy(), active(false), series(0){} void move(); //движение шарика void setDefRad(); //вернуть радиус void incRad(); //увеличить радиус void Bounce(Brick &, int, int); //отскок от кирпичей bool isCollision(Brick &, int, int); //столкновение с кирпичом void Draw(GLuint); //прорисовка }; Методы класса: Ball() - конструктор. void move() - определяет координаты шарика. void setDefRad() - устанавливает значение радиуса шарика на начальное. void incRad() - увеличивает радиус шарика. void Bounce(Brick &, int, int) - определяет поведение шарика после столкновения с кирпичом. Интерфейс класса Board: class Board { public: float x, y, //координаты платформы w, h; //ширина и высота int lifes; //жизни Board(): x(100), y(340), lifes(3), w(40), h(8){} //конструктор void expand(); //расширить платформу void setDefSize(); //вернуть начальную ширину float center(); //возвращает координату х центра платформы void Draw(GLuint); //прорисовка платформы }; Методы класса: Board() - конструктор. void expand() - увеличивает ширину платформы. void setDefSize() - восстанавливает ширину платформы. float center() - возвращает координату х центра платформы. void Draw(GLuint) - выполняет прорисовку платформы. ПРИЛОЖЕНИЕ Текст программы В файле Arkanoid.cpp: //-------------------------------------- #include #pragma hdrstop //-------------------------------------- USEFORM(Main.cpp, Form1); USEFORM(About.cpp, Form3); USEFORM(Help.cpp, Form2); //-------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->Title = Arkanoid3D; Application->CreateForm(__classid(TForm1), &Form1); Application->CreateForm(__classid(TForm2), &Form2); Application->CreateForm(__classid(TForm3), &Form3); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; } //-------------------------------------- В файле vars.h: #define INITX 150 #define INITY 100 #define WINH 800 #define WINW800 #define HEIGHT 350 #define WIDTH 300 #define BRICKL30 #define BRICKH15 #define BRICKW30 #define SPEED8 #define BRICK_ROWS 8 #define BRICK_COLS 10 #define TXTR 6 #pragma once В файле Main.h: //-------------------------------------- #ifndef MainH #define MainH //-------------------------------------- #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include vars.h #include Brick.h #include Ball.h #include Board.h //#pragma once using namespace std; //-------------------------------------- class TForm1: public TForm { __published:// IDE-managed Components TTimer *Timer1; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TMenuItem *N3; TMenuItem *N4; TMenuItem *N5; TMenuItem *N6; TMenuItem *N7; TMenuItem *N8; TMenuItem *N9; TMenuItem *N10; TEdit *edtLevel; TEdit *edtScore; TEdit *edtTime; TEdit *edtLifes; void __fastcall FormCreate(TObject *Sender); void __fastcall FormDestroy(TObject *Sender); void __fastcall FormResize(TObject *Sender); void __fastcall FormPaint(TObject *Sender); void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift); void __fastcall Timer1Timer(TObject *Sender); void __fastcall FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall N2Click(TObject *Sender); void __fastcall N8Click(TObject *Sender); void __fastcall N9Click(TObject *Sender); void __fastcall N4Click(TObject *Sender); void __fastcall N10Click(TObject *Sender); void __fastcall FormCanResize(TObject *Sender, int &NewWidth, int &NewHeight, bool &Resize); void __fastcall N6Click(TObject *Sender); void __fastcall N7Click(TObject *Sender); void __fastcall FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); private:// User declarations HGLRC ghRC; // указатель на контекст воспроизведения (Rendering Context) HDC hDC; // дескриптор (контекст) устройства public:// User declarati
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?