Apr 12, 2014 at 3:04pm UTC
Hello. :) We were required to apply encapsulation, abstraction, polymorphism and inheritance in our pong game (OpenGL). But our professor did NOT teach us at all on as to how we can apply those concepts in OpenGL. Can someone please help me? :(
[code]
#include <vector>
#include <time.h>
#include "Glut_Setup.h"
using namespace std;
float const origin = 0.0, pointy = 10.0;
float triP1x = 2.0, triP1y = 1.0, triP1z = 0.0,
triP2x = 6.0, triP2y = 1.0, triP2z = 0.0,
triP3x = 4.0, triP3y = 3.0, triP3z = 0.0;
float ballRadius = 0.5, ballX = 0.5, ballY = 0.5, ballZ = 0.0;
float wall1P1x = 14, wall1P1y = 15, wall1P1z = 0.0,
wall1P2x = 14.5, wall1P2y = 15, wall1P2z = 0.0,
wall1P3x = 14.5, wall1P3y = -15, wall1P3z = 0.0,
wall1P4x = 14, wall1P4y = -15, wall1P4z = 0.0;
float wall2P1x = -14, wall2P1y = 15, wall2P1z = 0.0,
wall2P2x = -14.5, wall2P2y = 15, wall2P2z = 0.0,
wall2P3x = -14.5, wall2P3y = -15, wall2P3z = 0.0,
wall2P4x = -14, wall2P4y = -15, wall2P4z = 0.0;
float wall3P1x=-2, wall3P1y = -11.5, wall3P1z = 0.0,
wall3P2x = 2, wall3P2y = -11.5, wall3P2z = 0.0,
wall3P3x = 2, wall3P3y = -11, wall3P3z = 0.0,
wall3P4x = -2, wall3P4y = -11, wall3P4z = 0.0;
float wall4P1x= -2, wall4P1y = 11.5, wall4P1z = 0.0,
wall4P2x = 2, wall4P2y = 11.5, wall4P2z = 0.0,
wall4P3x = 2, wall4P3y = 11, wall4P3z = 0.0,
wall4P4x = -2, wall4P4y = 11, wall4P4z = 0.0;
float wall21P1x= -12, wall21P1y = 15, wall21P1z = 0.0,
wall21P2x = -9, wall21P2y = 15, wall21P2z = 0.0,
wall21P3x = -9, wall21P3y = -15, wall21P3z = 0.0,
wall21P4x = -12, wall21P4y = -15, wall21P4z = 0.0;
float wall22P1x= -1.5, wall22P1y = 15, wall22P1z = 0.0,
wall22P2x = 1.5, wall22P2y = 15, wall22P2z = 0.0,
wall22P3x = 1.5, wall22P3y = -15, wall22P3z = 0.0,
wall22P4x = -1.5, wall22P4y = -15, wall22P4z = 0.0;
float wall23P1x= 9, wall23P1y = 15, wall23P1z = 0.0,
wall23P2x = 12, wall23P2y = 15, wall23P2z = 0.0,
wall23P3x = 12, wall23P3y = -15, wall23P3z = 0.0,
wall23P4x = 9, wall23P4y = -15, wall23P4z = 0.0;
float wall25P1x= -15, wall25P1y = 1.5, wall25P1z = 0.0,
wall25P2x = 15, wall25P2y = 1.5, wall25P2z = 0.0,
wall25P3x = 15, wall25P3y = -1.5, wall25P3z = 0.0,
wall25P4x = -15, wall25P4y = -1.5, wall25P4z = 0.0;
float wall30P1x= -8, wall30P1y = 18, wall30P1z = 0.0,
wall30P2x = -3, wall30P2y = 18, wall30P2z = 0.0,
wall30P3x = -3, wall30P3y = 3, wall30P3z = 0.0,
wall30P4x = -8, wall30P4y = 3, wall30P4z = 0.0;
float wall31P1x= 8, wall31P1y = 18, wall31P1z = 0.0,
wall31P2x = 3, wall31P2y = 18, wall31P2z = 0.0,
wall31P3x = 3, wall31P3y = 3, wall31P3z = 0.0,
wall31P4x = 8, wall31P4y = 3, wall31P4z = 0.0;
float wall10P1x = 20, wall10P1y = 20, wall10P1z = 0.0,
wall10P2x = -20, wall10P2y = 20, wall10P2z = 0.0,
wall10P3x = -20, wall10P3y = -20, wall10P3z = 0.0,
wall10P4x = 20, wall10P4y = -20, wall10P4z = 0.0;
float wall32P1x= 8, wall32P1y = -18, wall32P1z = 0.0,
wall32P2x = 3, wall32P2y = -18, wall32P2z = 0.0,
wall32P3x = 3, wall32P3y = -3, wall32P3z = 0.0,
wall32P4x = 8, wall32P4y = -3, wall32P4z = 0.0;
float wall33P1x= -8, wall33P1y = -18, wall33P1z = 0.0,
wall33P2x = -3, wall33P2y = -18, wall33P2z = 0.0,
wall33P3x = -3, wall33P3y = -3, wall33P3z = 0.0,
wall33P4x = -8, wall33P4y = -3, wall33P4z = 0.0;
float WallLife= 3;
float wallcx= 1.0, wallcy=0.0, wallcz=0.0;
float ballULx,
ballULy,
ballLRx,
ballLRy;
float moveX = 0.1, moveY=0.1;
void GameScene()
{
//_____________________________
// para gumalaw ang ball :D
ballX =ballX+moveX;
ballY =ballY+moveY;
ballULx=ballX-ballRadius;
ballULy=ballY+ballRadius;
ballLRx=ballX+ballRadius;
ballLRy=ballY-ballRadius;
if (ballLRx>=wall1P1x)
moveX*=-1;
if (ballULx<=wall2P2x)
moveX*=-1;
if (ballULy>=wall4P3y)
moveY*=-1;
//if (ballLRy<=wall3P1y)
// moveY*=-1;
if ((ballLRx>=wall3P1x) && (ballLRy<=wall3P1y)&& (ballULx<=wall3P2x))
moveY*=-1;
if ((ballULy >= wall4P3y) && (ballLRx >=wall4P4x) && (ballULx >= wall4P3x))
moveY*=-1;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLineWidth(1.0);
glBegin(GL_LINES);
//glBegin(GL_LINE_LOOP);
//glColor3f(0.0, 0.0, 1.0);
//glVertex3f(triP1x, triP1y, triP1z);
//glVertex3f(triP2x, triP2y, triP2z);
//glVertex3f(triP3x, triP3y, triP3z);
//glEnd();
glBegin(GL_LINE_LOOP);
glColor3f(0.1,0.1,0.1);
glVertex3f(ballULx, ballULy, ballZ);
glVertex3f(ballLRx, ballULy, ballZ);
glVertex3f(ballLRx, ballLRy, ballZ);
glVertex3f(ballULx, ballLRy, ballZ);
glEnd();
glBegin(GL_QUADS);
glColor3f(0.3f, 0.7f, 0.7f);
glVertex3f(wall1P1x, wall1P1y, wall1P1z);
glVertex3f(wall1P2x, wall1P2y, wall1P2z);
glVertex3f(wall1P3x, wall1P3y, wall1P3z);
glVertex3f(wall1P4x, wall1P4y, wall1P4z);
glBegin(GL_QUADS);
glColor3f(0.3f, 0.7f, 0.7f);
glVertex3f(wall2P1x, wall2P1y, wall2P1z);
glVertex3f(wall2P2x, wall2P2y, wall2P2z);
glVertex3f(wall2P3x, wall2P3y, wall2P3z);
glVertex3f(wall2P4x, wall2P4y, wall2P4z);
glBegin(GL_QUADS);
glColor3f(0.6f, 0.9f, 0.9f);
glVertex3f(wall3P1x, wall3P1y, wall3P1z);
glVertex3f(wall3P2x, wall3P2y, wall3P2z);
glVertex3f(wall3P3x, wall3P3y, wall3P3z);
glVertex3f(wall3P4x, wall3P4y, wall3P4z);
glColor3f(0.6f, 0.9f, 0.9f);
glVertex3f(wall4P1x, wall4P1y, wall4P1z);
glVertex3f(wall4P2x, wall4P2y, wall4P2z);
glVertex3f(wall4P3x, wall4P3y, wall4P3z);
glVertex3f(wall4P4x, wall4P4y, wall4P4z);
glBegin(GL_QUADS);
glColor3f(1.0, 1.0, 1.0);
glVertex3f(wall21P1x, wall21P1y, wall21P1z);
glVertex3f(wall21P2x, wall21P2y, wall21P2z);
glVertex3f(wall21P3x, wall21P3y, wall21P3z);
glVertex3f(wall21P4x, wall21P4y, wall21P4z);
glBegin(GL_QUADS);
glColor3f(1.0, 1.0, 1.0);
glVertex3f(wall22P1x, wall22P1y, wall22P1z);
glVertex3f(wall22P2x, wall22P2y, wall22P2z);
glVertex3f(wall22P3x, wall22P3y, wall22P3z);
glVertex3f(wall22P4x, wall22P4y, wall22P4z);
glBegin(GL_QUADS);
glColor3f(1.0, 1.0, 1.0);
glVertex3f(wall23P1x, wall23P1y, wall23P1z);
glVertex3f(wall23P2x, wall23P2y, wall23P2z);
glVertex3f(wall23P3x, wall23P3y, wall23P3z);
glVertex3f(wall23P4x, wall23P4y, wall23P4z);
glBegin(GL_QUADS);
glColor3f(1.0, 1.0, 1.0);
glVertex3f(wall25P1x, wall25P1y, wall25P1z);
glVertex3f(wall25P2x, wall25P2y, wall25P2z);
glVertex3f(wall25P3x, wall25P3y, wall25P3z);
glVertex3f(wall25P4x, wall25P4y, wall25P4z);
glBegin(GL_QUADS);
glColor3f(0.3f, 0.7f, 0.7f);
glVertex3f(wall30P1x, wall30P1y, wall30P1z);
glVertex3f(wall30P2x, wall30P2y, wall30P2z);
glVertex3f(wall30P3x, wall30P3y, wall30P3z);
glVertex3f(wall30P4x, wall30P4y, wall30P4z);
glBegin(GL_QUADS);
glColor3f(0.3f, 0.7f, 0.7f);
glVertex3f(wall31P1x, wall31P1y, wall31P1z);
glVertex3f(wall31P2x, wall31P2y, wall31P2z);
glVertex3f(wall31P3x, wall31P3y, wall31P3z);
glVertex3f(wall31P4x, wall31P4y, wall31P4z);
glBegin(GL_QUADS);
glColor3f(0.3f, 0.7f, 0.7f);
glVertex3f(wall32P1x, wall32P1y, wall32P1z);
glVertex3f(wall32P2x, wall32P2y, wall32P2z);
glVertex3f(wall32P3x, wall32P3y, wall32P3z);
glVertex3f(wall32P4x, wall32P4y, wall32P4z);