Final Pong Touches

This commit is contained in:
elipzer 2018-10-18 12:28:46 -04:00
parent 30933b53ce
commit 5ac67dece7
2 changed files with 31 additions and 10 deletions

View File

@ -11,6 +11,12 @@
#include <charcoal-builtin/GLUtil.h>
#define LEFT_PADDLE_UP_KEY GLFW_KEY_A
#define LEFT_PADDLE_DOWN_KEY GLFW_KEY_Z
#define RIGHT_PADDLE_UP_KEY GLFW_KEY_APOSTROPHE
#define RIGHT_PADDLE_DOWN_KEY GLFW_KEY_SLASH
#define OUTLINE_THICKNESS 25.0f
#define OUTLINE_OFFSET 25.0f
@ -102,11 +108,11 @@ void MyPongScene::update(float delta_time, clock_t clock)
if (m_left_lives > 0)
{
if (m_input_manager.is_key_down(GLFW_KEY_A))
if (m_input_manager.is_key_down(LEFT_PADDLE_UP_KEY))
{
m_paddle_left_pose.translate(up * PADDLE_SPEED * delta_time);
}
if (m_input_manager.is_key_down(GLFW_KEY_Z))
if (m_input_manager.is_key_down(LEFT_PADDLE_DOWN_KEY))
{
m_paddle_left_pose.translate(down * PADDLE_SPEED * delta_time);
}
@ -114,12 +120,11 @@ void MyPongScene::update(float delta_time, clock_t clock)
if (m_right_lives > 0)
{
if (m_input_manager.is_key_down(GLFW_KEY_APOSTROPHE))
if (m_input_manager.is_key_down(RIGHT_PADDLE_UP_KEY))
{
m_paddle_right_pose.translate(up * PADDLE_SPEED * delta_time);
}
if (m_input_manager.is_key_down(GLFW_KEY_SLASH))
if (m_input_manager.is_key_down(RIGHT_PADDLE_DOWN_KEY))
{
m_paddle_right_pose.translate(down * PADDLE_SPEED * delta_time);
}
@ -146,7 +151,7 @@ void MyPongScene::update(float delta_time, clock_t clock)
m_ball_direction.y = glm::abs(m_ball_direction.y);
}
// Bounce Left Right (temp. should be adding points)
// Scoring
if (ball_position.x + HALF_BALL_THICKNESS + OUTLINE_INWARDS > m_screen_size.x / 2.0f)
{
@ -171,13 +176,31 @@ void MyPongScene::update(float delta_time, clock_t clock)
if (physics::collision::rect_in_rect(ball_hitbox, left_paddle_hitbox))
{
m_ball_direction = rand_dir((float)charcoal::TAU_7_8, (float)charcoal::TAU_7_8 + (float)charcoal::TAU_1_4);
float ball_y = m_ball_direction.y * m_ball_speed;
if (m_input_manager.is_key_down(LEFT_PADDLE_UP_KEY))
{
ball_y += PADDLE_SPEED;
}
else if (m_input_manager.is_key_down(LEFT_PADDLE_DOWN_KEY))
{
ball_y -= PADDLE_SPEED;
}
m_ball_direction = glm::normalize(glm::vec2(m_ball_speed, ball_y));
m_ball_speed += BALL_SPEED_INCREMENT;
}
if (physics::collision::rect_in_rect(ball_hitbox, right_paddle_hitbox))
{
m_ball_direction = rand_dir((float)charcoal::TAU_3_8, (float)charcoal::TAU_5_8);
float ball_y = m_ball_direction.y * m_ball_speed;
if (m_input_manager.is_key_down(RIGHT_PADDLE_UP_KEY))
{
ball_y += PADDLE_SPEED;
}
else if (m_input_manager.is_key_down(RIGHT_PADDLE_DOWN_KEY))
{
ball_y -= PADDLE_SPEED;
}
m_ball_direction = glm::normalize(glm::vec2(-m_ball_speed, ball_y));
m_ball_speed += BALL_SPEED_INCREMENT;
}

View File

@ -30,8 +30,6 @@ private:
vec2 rand_dir(float radians_low, float radians_high);
float add_magnitude(float value, float added);
void reset_ball();
basic::Renderable m_outline_column;