Add project files.
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
#include "cCourt.hpp"
|
||||
|
||||
using Equipment::cCourt;
|
||||
using Equipment::cBall;
|
||||
using Equipment::cPaddle;
|
||||
|
||||
using MathEngine::cCollision;
|
||||
using MathEngine::Vector4;
|
||||
using MathEngine::Vector2;
|
||||
|
||||
cCourt::cCourt( cBall* ball /*= nullptr*/, cPaddle* player1 /*= nullptr*/, cPaddle* player2 /*= nullptr*/, VideoEngine::cImage** image /*= nullptr*/ )
|
||||
: cSprite( 0, 0, 0, 0, 640, 480, image), mp_ball(ball), m_pause(false)
|
||||
{
|
||||
m_topWall.x = 0.0f;
|
||||
m_topWall.y = 0.0f;
|
||||
m_topWall.z = 640.0f;
|
||||
m_topWall.w = 14.0f;
|
||||
|
||||
m_bottomWall.x = 0.0f;
|
||||
m_bottomWall.y = 464.0f;
|
||||
m_bottomWall.z = 640.0f;
|
||||
m_bottomWall.w = 14.0f;
|
||||
|
||||
m_leftOff.x = 0.0f;
|
||||
m_leftOff.y = 0.0f;
|
||||
m_leftOff.z = 480.0f;
|
||||
m_leftOff.w = 1.0f;
|
||||
|
||||
m_rightOff.x = 640.0f;
|
||||
m_rightOff.y = 0.0f;
|
||||
m_rightOff.z = 480.0f;
|
||||
m_rightOff.w = 1.0f;
|
||||
|
||||
m_court.x = 0.0f;
|
||||
m_court.y = 15.0f;
|
||||
m_court.z = 640.0f;
|
||||
m_court.w = 450.0f;
|
||||
|
||||
mp_player[0] = player1;
|
||||
mp_player[1] = player2;
|
||||
|
||||
setImageArea();
|
||||
}
|
||||
|
||||
cCourt::~cCourt()
|
||||
{}
|
||||
|
||||
///Functions
|
||||
void cCourt::CheckCollision()
|
||||
{
|
||||
if (m_pause == false)
|
||||
{
|
||||
CheckPaddles();
|
||||
CheckWalls();
|
||||
CheckOffCourt();
|
||||
}
|
||||
}
|
||||
|
||||
void cCourt::Quit()
|
||||
{
|
||||
}
|
||||
|
||||
const bool cCourt::isPause() const
|
||||
{
|
||||
return m_pause;
|
||||
}
|
||||
|
||||
void cCourt::Pause()
|
||||
{
|
||||
m_pause = !m_pause;
|
||||
|
||||
mp_ball->Pause();
|
||||
mp_player[0]->Pause();
|
||||
mp_player[1]->Pause();
|
||||
}
|
||||
|
||||
//private:
|
||||
//Checks to see if the ball has hit a paddles and then if the paddles have hit a wall.
|
||||
void cCourt::CheckPaddles()
|
||||
{
|
||||
for (int count = 0; count <= 1; ++count)
|
||||
{
|
||||
//Check to see if the ball hit the Paddles.
|
||||
if (cCollision::BoundingBox(mp_player[count]->getPosition(), mp_ball->getPosition()) == true)
|
||||
mp_ball->BounceX();
|
||||
|
||||
//Check to see if the Paddles hit the top wall.
|
||||
if (cCollision::BoundingBox(mp_player[count]->getPosition(), m_topWall) == true)
|
||||
mp_player[count]->setPosY((long)m_topWall.w + 1);
|
||||
|
||||
//Check to see if the Paddles hit the bottom wall.
|
||||
if (cCollision::BoundingBox(mp_player[count]->getPosition(), m_bottomWall) == true)
|
||||
mp_player[count]->setPosY((long)m_bottomWall.y - 1);
|
||||
}
|
||||
}
|
||||
|
||||
//Cheaks to see if the ball has hit the provide wall.
|
||||
void cCourt::CheckWall(const Vector4& wall)
|
||||
{
|
||||
if (cCollision::BoundingBox(mp_ball->getPosition(), wall) == true)
|
||||
mp_ball->BounceY();
|
||||
}
|
||||
|
||||
//Cheaks to see if the ball has hit the wall.
|
||||
void cCourt::CheckWalls()
|
||||
{
|
||||
CheckWall(m_topWall);
|
||||
CheckWall(m_bottomWall);
|
||||
}
|
||||
|
||||
//Checks to see if the ball is off the provide side of the court.
|
||||
const bool cCourt::CheckOffCourt(const Vector4& offside)
|
||||
{
|
||||
bool rtn = false;
|
||||
|
||||
if (cCollision::BoundingBox(mp_ball->getPosition(), offside) == true)
|
||||
{
|
||||
mp_ball->setSpeed(0,0);
|
||||
rtn = true;
|
||||
}
|
||||
|
||||
return rtn;
|
||||
}
|
||||
|
||||
//Checks to see if the ball is off the court
|
||||
void cCourt::CheckOffCourt()
|
||||
{
|
||||
MathEngine::Vector2 mov = cCollision::Inside(m_court, mp_ball->getPosition());
|
||||
|
||||
if (mov.x != 0.0f)
|
||||
{
|
||||
// if (mov.x > 0.0f);
|
||||
// //point to player 1
|
||||
// if (mov.x < 0.0f);
|
||||
// //point to player 2
|
||||
}
|
||||
|
||||
if (mov.y != 0.0f)
|
||||
mp_ball->AddPosY((long)mov.y);
|
||||
|
||||
//if (CheckOffCourt(m_leftOff) == true)
|
||||
// ;
|
||||
//if (CheckOffCourt(m_rightOff) == true)
|
||||
// ;
|
||||
}
|
||||
Reference in New Issue
Block a user