GL - sending dir to server, forward and backward walking works
This commit is contained in:
parent
07e5519850
commit
fb2cf714c6
|
@ -273,8 +273,11 @@ void GameState::readKeyInput(InputClass* KeyInput)
|
||||||
camera->Pitch(KeyInput->GetPitch());
|
camera->Pitch(KeyInput->GetPitch());
|
||||||
camera->UpdateViewMatrix();
|
camera->UpdateViewMatrix();
|
||||||
GameLogic::Protocol_PlayerLook playerLookDir;
|
GameLogic::Protocol_PlayerLook playerLookDir;
|
||||||
//deltaMouseMove.camera->GetLook();
|
Oyster::Math::Float3 look = camera->GetLook();
|
||||||
//privData->nwClient->Send(playerLookDir);
|
playerLookDir.lookDirX = look.x;
|
||||||
|
playerLookDir.lookDirY = look.y;
|
||||||
|
playerLookDir.lookDirZ = look.z;
|
||||||
|
privData->nwClient->Send(playerLookDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -313,12 +316,11 @@ void GameState::Protocol( ObjPos* pos )
|
||||||
if(privData->object[i]->GetId() == pos->object_ID)
|
if(privData->object[i]->GetId() == pos->object_ID)
|
||||||
{
|
{
|
||||||
privData->object[i]->setPos(world);
|
privData->object[i]->setPos(world);
|
||||||
|
//camera->setRight((Oyster::Math::Float3(world[0], world[1], world[2])));
|
||||||
|
//camera->setUp((Oyster::Math::Float3(world[4], world[5], world[6])));
|
||||||
|
//camera->setLook((Oyster::Math::Float3(world[8], world[9], world[10])));
|
||||||
camera->SetPosition(Oyster::Math::Float3(world[12], world[13], world[14]));
|
camera->SetPosition(Oyster::Math::Float3(world[12], world[13], world[14]));
|
||||||
camera->UpdateViewMatrix();
|
camera->UpdateViewMatrix();
|
||||||
//privData->view = world;
|
|
||||||
//privData->view = Oyster::Math3D::InverseOrientationMatrix(privData->view);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ int WINAPI WinMain( HINSTANCE hinst, HINSTANCE prevInst, PSTR cmdLine, int cmdSh
|
||||||
DanBias::DanBiasGameDesc gameDesc;
|
DanBias::DanBiasGameDesc gameDesc;
|
||||||
gameDesc.port = 15151;
|
gameDesc.port = 15151;
|
||||||
//gameDesc.port = 15152;
|
//gameDesc.port = 15152;
|
||||||
//gameDesc.IP = "193.11.184.196";
|
//gameDesc.IP = "193.11.184.109";
|
||||||
//gameDesc.IP = "193.11.184.31";
|
//gameDesc.IP = "193.11.184.31";
|
||||||
//gameDesc.IP = "194.47.150.56";
|
//gameDesc.IP = "194.47.150.56";
|
||||||
gameDesc.IP = "127.0.0.1";
|
gameDesc.IP = "127.0.0.1";
|
||||||
|
|
|
@ -29,7 +29,7 @@ void Level::InitiateLevel(float radius)
|
||||||
|
|
||||||
|
|
||||||
ICustomBody* rigidBody = API::Instance().CreateRigidBody(sbDesc).Release();
|
ICustomBody* rigidBody = API::Instance().CreateRigidBody(sbDesc).Release();
|
||||||
rigidBody->SetCustomTag(levelObj);
|
//rigidBody->SetCustomTag(levelObj);
|
||||||
|
|
||||||
ICustomBody::State state;
|
ICustomBody::State state;
|
||||||
rigidBody->GetState(state);
|
rigidBody->GetState(state);
|
||||||
|
@ -38,14 +38,14 @@ void Level::InitiateLevel(float radius)
|
||||||
|
|
||||||
levelObj = new StaticObject(rigidBody, LevelCollision, OBJECT_TYPE::OBJECT_TYPE_WORLD);
|
levelObj = new StaticObject(rigidBody, LevelCollision, OBJECT_TYPE::OBJECT_TYPE_WORLD);
|
||||||
|
|
||||||
API::Gravity gravityWell;
|
/*API::Gravity gravityWell;
|
||||||
|
|
||||||
gravityWell.gravityType = API::Gravity::GravityType_Well;
|
gravityWell.gravityType = API::Gravity::GravityType_Well;
|
||||||
gravityWell.well.mass = 10e12f;
|
gravityWell.well.mass = 10e12f;
|
||||||
gravityWell.well.position = Oyster::Math::Float4(0,0,0,1);
|
gravityWell.well.position = Oyster::Math::Float4(0,0,0,1);
|
||||||
|
|
||||||
API::Instance().AddGravity(gravityWell);
|
API::Instance().AddGravity(gravityWell);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void Level::AddPlayerToTeam(Player *player, int teamID)
|
void Level::AddPlayerToTeam(Player *player, int teamID)
|
||||||
|
|
|
@ -54,7 +54,7 @@ Object::Object(ICustomBody *rigidBody ,void* collisionFunc, OBJECT_TYPE type)
|
||||||
Oyster::Physics::API::Instance().AddObject(rigidBody);
|
Oyster::Physics::API::Instance().AddObject(rigidBody);
|
||||||
|
|
||||||
rigidBody->SetSubscription((Oyster::Physics::ICustomBody::EventAction_Collision)(collisionFunc));
|
rigidBody->SetSubscription((Oyster::Physics::ICustomBody::EventAction_Collision)(collisionFunc));
|
||||||
|
rigidBody->SetCustomTag(this);
|
||||||
this->objectID = GID();
|
this->objectID = GID();
|
||||||
|
|
||||||
this->type = type;
|
this->type = type;
|
||||||
|
@ -98,9 +98,11 @@ void Object::EndFrame()
|
||||||
|
|
||||||
//Oyster::Math::Float rot = (setState.GetGravityNormal().xyz).Dot(getState.GetGravityNormal().xyz);
|
//Oyster::Math::Float rot = (setState.GetGravityNormal().xyz).Dot(getState.GetGravityNormal().xyz);
|
||||||
//Oyster::Math::Float3 axis = (setState.GetGravityNormal().xyz).Cross(getState.GetGravityNormal().xyz);
|
//Oyster::Math::Float3 axis = (setState.GetGravityNormal().xyz).Cross(getState.GetGravityNormal().xyz);
|
||||||
Oyster::Math::Float4x4 rotMatrix = setState.GetOrientation(); //Oyster::Math3D::RotationMatrix(rot, axis);
|
|
||||||
Oyster::Math3D::SnapAxisYToNormal_UsingNlerp(rotMatrix, -setState.GetGravityNormal());
|
// align with gravity normal
|
||||||
setState.SetOrientation(rotMatrix);
|
//Oyster::Math::Float4x4 rotMatrix = setState.GetOrientation(); //Oyster::Math3D::RotationMatrix(rot, axis);
|
||||||
|
//Oyster::Math3D::SnapAxisYToNormal_UsingNlerp(rotMatrix, -setState.GetGravityNormal());
|
||||||
|
//setState.SetOrientation(rotMatrix);
|
||||||
|
|
||||||
|
|
||||||
this->getState = this->rigidBody->GetState();
|
this->getState = this->rigidBody->GetState();
|
||||||
|
|
|
@ -18,6 +18,7 @@ Player::Player()
|
||||||
lookDir = Oyster::Math::Float4(0,0,-1,0);
|
lookDir = Oyster::Math::Float4(0,0,-1,0);
|
||||||
setState.SetCenterPosition(Oyster::Math::Float4(0,15,0,1));
|
setState.SetCenterPosition(Oyster::Math::Float4(0,15,0,1));
|
||||||
setState.SetReach(Oyster::Math::Float4(2,3.5,2,0));
|
setState.SetReach(Oyster::Math::Float4(2,3.5,2,0));
|
||||||
|
//setState.SetRotation(Oyster::Math::Float4(0,0,0,0).Normalize());
|
||||||
}
|
}
|
||||||
|
|
||||||
Player::~Player(void)
|
Player::~Player(void)
|
||||||
|
@ -64,6 +65,7 @@ void Player::MoveBackwards()
|
||||||
void Player::MoveRight()
|
void Player::MoveRight()
|
||||||
{
|
{
|
||||||
//Do cross product with forward vector and negative gravity vector
|
//Do cross product with forward vector and negative gravity vector
|
||||||
|
// temp up vector
|
||||||
Oyster::Math::Float4 r = Oyster::Math::Float4(1, 0, 0, 0 );
|
Oyster::Math::Float4 r = Oyster::Math::Float4(1, 0, 0, 0 );
|
||||||
//Oyster::Math::Float4 r = (-rigidBody->GetGravityNormal()).Cross((Oyster::Math::Float3)this->lookDir);
|
//Oyster::Math::Float4 r = (-rigidBody->GetGravityNormal()).Cross((Oyster::Math::Float3)this->lookDir);
|
||||||
setState.ApplyLinearImpulse(r * 20 * this->gameInstance->GetFrameTime());
|
setState.ApplyLinearImpulse(r * 20 * this->gameInstance->GetFrameTime());
|
||||||
|
@ -72,6 +74,7 @@ void Player::MoveRight()
|
||||||
void Player::MoveLeft()
|
void Player::MoveLeft()
|
||||||
{
|
{
|
||||||
//Do cross product with forward vector and negative gravity vector
|
//Do cross product with forward vector and negative gravity vector
|
||||||
|
// temp up vector
|
||||||
Oyster::Math::Float4 r = Oyster::Math::Float4(1, 0, 0, 0 );
|
Oyster::Math::Float4 r = Oyster::Math::Float4(1, 0, 0, 0 );
|
||||||
//Oyster::Math::Float4 r1 = -(-rigidBody->GetGravityNormal()).Cross((Oyster::Math::Float3)this->lookDir); //Still get zero
|
//Oyster::Math::Float4 r1 = -(-rigidBody->GetGravityNormal()).Cross((Oyster::Math::Float3)this->lookDir); //Still get zero
|
||||||
setState.ApplyLinearImpulse(-r * 20 * this->gameInstance->GetFrameTime());
|
setState.ApplyLinearImpulse(-r * 20 * this->gameInstance->GetFrameTime());
|
||||||
|
@ -93,7 +96,14 @@ void Player::Respawn(Oyster::Math::Float3 spawnPoint)
|
||||||
void Player::Rotate(const Oyster::Math3D::Float3 lookDir)
|
void Player::Rotate(const Oyster::Math3D::Float3 lookDir)
|
||||||
{
|
{
|
||||||
|
|
||||||
//this->lookDir = lookDir;
|
this->lookDir = lookDir;
|
||||||
|
|
||||||
|
Oyster::Math::Float4 up(0,1,0,0);//-setState.GetGravityNormal();
|
||||||
|
Oyster::Math::Float4 pos = setState.GetCenterPosition();
|
||||||
|
Oyster::Math::Float4x4 world = Oyster::Math3D::OrientationMatrix_LookAtDirection(lookDir, up.xyz, pos.xyz);
|
||||||
|
// cant set rotation
|
||||||
|
//setState.SetOrientation(world);
|
||||||
|
//this->lookDir = lookDir - up.xyz;
|
||||||
|
|
||||||
//this->setState.AddRotation(Oyster::Math::Float4(x, y));
|
//this->setState.AddRotation(Oyster::Math::Float4(x, y));
|
||||||
//this->setState.SetRotation();
|
//this->setState.SetRotation();
|
||||||
|
|
Loading…
Reference in New Issue