From c04ccc9cc3aa91c634880cbfd2d77b58d68189ad Mon Sep 17 00:00:00 2001 From: Joe Robinson Date: Tue, 21 Dec 2010 18:00:21 +0000 Subject: Implement crouching --- Player.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'Player.cpp') diff --git a/Player.cpp b/Player.cpp index e38492d..09d1743 100644 --- a/Player.cpp +++ b/Player.cpp @@ -4,6 +4,7 @@ Player::Player() { health = 100; sprint = false; + crouch = 0; } void Player::jump() { @@ -31,3 +32,37 @@ int Player::getXVel() { else return xVel; } + +/* Set crouching state + 0 = default, not crouching + 1 = attempting to stop crouching + 2 = crouching */ +void Player::setCrouch(int c) { + if (c == 2) { + crouch = 2; + setY(getY() + MARCUS_HEIGHT - CROUCH_HEIGHT); + } else if (c == 1) { + crouch = 1; + } else if (c == 0) { + crouch = 0; + setY(getY() - MARCUS_HEIGHT + CROUCH_HEIGHT); + } +} + +// Override orient to give player crouching +void Player::orient() { + if (crouch > 0) + clipNo = ORIENT_CROUCH; + else if (xVel < 0) + clipNo = ORIENT_LEFT; + else if (xVel > 0) + clipNo = ORIENT_RIGHT; + else if (yVel < 0) + clipNo = ORIENT_BACK; + else + clipNo = ORIENT_FRONT; +} + +int Player::getCrouch() { + return crouch; +} -- cgit v1.2.3