From 52ba5602d5c0f281a8f8b66f674f9b0e01ca5e26 Mon Sep 17 00:00:00 2001 From: Erik Persson Date: Thu, 9 Jan 2014 13:06:18 +0100 Subject: [PATCH] GameLogic - player now using some of the new phys api --- Code/Game/GameLogic/Object.h | 3 +++ Code/Game/GameLogic/Player.cpp | 20 +++++++++----------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Code/Game/GameLogic/Object.h b/Code/Game/GameLogic/Object.h index a73dc154..c199eb58 100644 --- a/Code/Game/GameLogic/Object.h +++ b/Code/Game/GameLogic/Object.h @@ -15,6 +15,7 @@ namespace Oyster namespace Physics { class ICustomBody; + class State; } } namespace GameLogic @@ -36,6 +37,8 @@ namespace GameLogic int objectID; protected: Oyster::Physics::ICustomBody *rigidBody; + Oyster::Physics::ICustomBody::State *state; + }; } diff --git a/Code/Game/GameLogic/Player.cpp b/Code/Game/GameLogic/Player.cpp index ecf60dd3..a9e5b1d0 100644 --- a/Code/Game/GameLogic/Player.cpp +++ b/Code/Game/GameLogic/Player.cpp @@ -16,7 +16,7 @@ struct Player::PrivateData teamID = -1; playerState = PLAYER_STATE::PLAYER_STATE_IDLE; - lookDir = Oyster::Math::Float3(1,0,0); + lookDir = Oyster::Math::Float4(1,0,0); } ~PrivateData() @@ -31,7 +31,7 @@ struct Player::PrivateData int teamID; Weapon *weapon; PLAYER_STATE playerState; - Oyster::Math::Float3 lookDir; + Oyster::Math::Float4 lookDir; }myData; @@ -49,8 +49,6 @@ Player::~Player(void) void Player::Move(const PLAYER_MOVEMENT &movement) { - //Oyster::Math::Float3 currentVelocity = rigidBody->GetRigidLinearVelocity(); - switch(movement) { case PLAYER_MOVEMENT::PLAYER_MOVEMENT_FORWARD: @@ -77,23 +75,23 @@ void Player::Move(const PLAYER_MOVEMENT &movement) void Player::MoveForward() { - //API::Instance().ApplyForceAt(rigidBody,rigidBody->GetCenter(),myData->lookDir * 100); + state->ApplyLinearImpulse(myData->lookDir * 100); } void Player::MoveBackwards() { - //API::Instance().ApplyForceAt(rigidBody,rigidBody->GetCenter(),-myData->lookDir * 100); + state->ApplyLinearImpulse(-myData->lookDir * 100); } void Player::MoveRight() { //Do cross product with forward vector and negative gravity vector - //Oyster::Math::Float3 r = (-rigidBody->GetGravityNormal()).Cross(myData->lookDir); - //API::Instance().ApplyForceAt(rigidBody, rigidBody->GetCenter(), r * 100); + Oyster::Math::Float4 r = (-rigidBody->GetGravityNormal()).Cross((Oyster::Math::Float3)myData->lookDir); + state->ApplyLinearImpulse(r * 100); } void Player::MoveLeft() { //Do cross product with forward vector and negative gravity vector - //Oyster::Math::Float3 r = -(-rigidBody->GetGravityNormal()).Cross(myData->lookDir); - //API::Instance().ApplyForceAt(rigidBody, rigidBody->GetCenter(), r * 100); + Oyster::Math::Float4 r = -(-rigidBody->GetGravityNormal()).Cross((Oyster::Math::Float3)myData->lookDir); + state->ApplyLinearImpulse(-r * 100); } void Player::UseWeapon(const WEAPON_FIRE &fireInput) @@ -106,7 +104,7 @@ void Player::Respawn(Oyster::Math::Float3 spawnPoint) //API::Instance().SetCenter(rigidBody,spawnPoint); myData->life = 100; myData->playerState = PLAYER_STATE::PLAYER_STATE_IDLE; - myData->lookDir = Oyster::Math::Float3(1,0,0); + myData->lookDir = Oyster::Math::Float4(1,0,0); } void Player::Jump()