Программирование на OpenGL

Автор работы: Пользователь скрыл имя, 29 Октября 2014 в 19:11, курсовая работа

Описание работы

Компьютерные игры так же существуют для того , чтобы превратить досуг или свободную минутку человека в развлекательное, а иногда даже поучительное время препровождение. Многие компъютерные игры имеют не только развлекательную функцию, но и так же способные развивать реакцию, скорость мышления. Данная игра ‘пинг-понг’ с компъютером направлена на развитие быстроты реакции. Ведь с каждым новым уровнем скорость передвижения мяча по игровому полю становится значительно быстрее, что потребует от игрока молниеносную реакцию и способность думать на шаг вперед.

Содержание работы

Введение 3.
1 Общий раздел 5.
1.1 Постановка задачи 5.
1.1.1 Определение основных функций задачи 7.
1.1.2 Требования к исходным данным 7.
1.2 Требования к техническим, программным средствам разработки и
функционированию программы 7.
1.2.1 Требования к техническим и программным средствам 7.
1.2.2 Обоснование выбранного языка программирования 9.
1.2.3 Описание языка программирования 9.
2 Специальный раздел 12.
2.1 Основные функции программы и их реализация 12.
2.2 Функции интерфейса 12.
2.3 Описание алгоритма решения задачи 14.
2.4 Тестирование основных функций задачи 17.

Файлы: 1 файл

Курсовая работа на тему Ping Pong.doc

— 138.50 Кб (Скачать файл)

        }

}

 

void keyboard(unsigned char key, int x,int y){

        switch(key){

        case '1' :

                if((left.y <= player.winhei - left.size/2)&&(!player.done_left))left.vy=7; /*

                left.y <= player.winhei - left.size/2 упирается ли пластина в границы экрана

                !player.done_left действие игрока */

                player.done_left = true;

                break;

        case '3' :

                if((left.y >= -player.winhei + left.size/2)&&(!player.done_left))left.vy=-7;

                player.done_left = true;

                break;

        case '2' :

                if((left.y >= -player.winhei + left.size/2)&&(!player.done_left))left.vy=0;

                player.done_left = true; //остановка платформы//

                break;

        case '5' : exit(0); //выход из игры//

                break;

        }

        switch(key){

        case 'a' :

                if((right.y <= player.winhei - right.size/2)&&(!player.done_right))right.vy=7;

                player.done_right = true;

                break;

        case 'd' :

                if((right.y >= -player.winhei + right.size/2)&&(!player.done_right))right.vy=-7;

                player.done_right = true;

                break;

        case 's' :

                if((right.y >= -player.winhei + right.size/2)&&(!player.done_right))right.vy=0;

                player.done_right = true; //остановка платформы//

                break;

        case '5' : exit(0); //выход из игры//

                break;

        }

}

 

void Timer (int value){

        player.done_left = false;

        player.done_right = false;

        left.move();

        right.move();

        pong_ball.move();

        pong_ball.reflection();

        player.floor_reflect();

        player.win();

        glutPostRedisplay();

        glutTimerFunc(20,Timer,0);

}

 

void draw(){

        glClear(GL_COLOR_BUFFER_BIT);

        glPushMatrix();

        glBegin(GL_QUADS);

        glColor3f(0,0,1); //цвет платформы//

        right.draw_r();//прорисовка правой части//

        glColor3f(1,0,1); //цвет  платформы//

        left.draw_r();//прорисовка  левой части//

        glColor3f(1,1,1); //цвет  платформы//

        pong_ball.draw_ball();//прорисовка  шара//

        player.border();

        player.draw_border();

        player.draw_score_l();

        player.draw_score_r();

        glEnd();

        glPopMatrix();

        glutSwapBuffers();

}

 

void Initialization(int winwid, int winhei){

glClearColor(0,0,0,1.0);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

glScalef(0.8,0.8,0.8); //отдаляем поле, для  того чтобы нарисовать границы//

glRotatef(90,0,0,1);

glOrtho(-winwid,winwid,-winhei,winhei,-2,2); //расширение экрана//

}

 

int main (int argc, char ** argv){

        srand(time(NULL));

        player.start_settings();

        glutInit(&argc, argv);

        glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

        glutInitWindowSize(player.winwid, player.winhei);

        glutInitWindowPosition(200, 100); //позиция окна//

        glutCreateWindow("***PONG***");

        glutDisplayFunc(draw);

        glutTimerFunc(100,Timer,0);

        glutKeyboardFunc(keyboard);

        Initialization(player.winwid, player.winhei);

        glutMainLoop();

        system("pause >> NULL");

        return 0;

}

 

 

 

Список использованной литературы

 

КНИГИ:

    1. Джесс Либерти. Освой самостоятельно С++ за 21 день. -4-ое издание / Пер. с англ. – М.: Издательский дом «Вильямс», 2001.

КУРС ЛЕКЦИЙ:

    1. По использованию динамической памяти;

 


Информация о работе Программирование на OpenGL