GL - added some testing things in player and more objects to the world
This commit is contained in:
parent
502d0c8586
commit
d8c7220569
|
@ -163,9 +163,9 @@ namespace DanBias
|
||||||
DanBias::GameServerAPI::GameStart();
|
DanBias::GameServerAPI::GameStart();
|
||||||
m_data->recieverObj->gameClientState = new Client::GameState();
|
m_data->recieverObj->gameClientState = new Client::GameState();
|
||||||
if(m_data->serverOwner)
|
if(m_data->serverOwner)
|
||||||
((Client::GameState*)m_data->recieverObj->gameClientState)->setClientId(2);
|
((Client::GameState*)m_data->recieverObj->gameClientState)->setClientId(0);
|
||||||
else
|
else
|
||||||
((Client::GameState*)m_data->recieverObj->gameClientState)->setClientId(3);
|
((Client::GameState*)m_data->recieverObj->gameClientState)->setClientId(1);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
|
@ -74,8 +74,9 @@ bool GameState::LoadModels(std::wstring mapFile)
|
||||||
// open file
|
// open file
|
||||||
// read file
|
// read file
|
||||||
// init models
|
// init models
|
||||||
privData->modelCount = 2;
|
privData->modelCount = 4;
|
||||||
|
myId += privData->modelCount;
|
||||||
|
int id = 0;
|
||||||
// add world model
|
// add world model
|
||||||
ModelInitData modelData;
|
ModelInitData modelData;
|
||||||
Oyster::Math3D::Float4x4 translate;
|
Oyster::Math3D::Float4x4 translate;
|
||||||
|
@ -83,7 +84,7 @@ bool GameState::LoadModels(std::wstring mapFile)
|
||||||
translate = Oyster::Math3D::TranslationMatrix(Oyster::Math::Float3(0,0,0));
|
translate = Oyster::Math3D::TranslationMatrix(Oyster::Math::Float3(0,0,0));
|
||||||
modelData.world = translate ;//modelData.world * translate
|
modelData.world = translate ;//modelData.world * translate
|
||||||
modelData.modelPath = L"world_earth.dan";
|
modelData.modelPath = L"world_earth.dan";
|
||||||
modelData.id = 0;
|
modelData.id = id++;
|
||||||
|
|
||||||
obj = new C_Player();
|
obj = new C_Player();
|
||||||
privData->object.push_back(obj);
|
privData->object.push_back(obj);
|
||||||
|
@ -94,34 +95,21 @@ bool GameState::LoadModels(std::wstring mapFile)
|
||||||
translate = Oyster::Math3D::TranslationMatrix(Oyster::Math::Float3(4,320,0));
|
translate = Oyster::Math3D::TranslationMatrix(Oyster::Math::Float3(4,320,0));
|
||||||
modelData.world = modelData.world * translate;
|
modelData.world = modelData.world * translate;
|
||||||
modelData.modelPath = L"..\\Content\\Models\\box.dan";
|
modelData.modelPath = L"..\\Content\\Models\\box.dan";
|
||||||
modelData.id = 1;
|
modelData.id = id++;
|
||||||
|
|
||||||
obj = new C_Player();
|
obj = new C_Player();
|
||||||
privData->object.push_back(obj);
|
privData->object.push_back(obj);
|
||||||
privData->object[privData->object.size() -1 ]->Init(modelData);
|
privData->object[privData->object.size() -1 ]->Init(modelData);
|
||||||
modelData.world = Oyster::Math3D::Float4x4::identity;
|
modelData.world = Oyster::Math3D::Float4x4::identity;
|
||||||
|
|
||||||
// add player model
|
// add crystal model
|
||||||
modelData.world = Oyster::Math3D::Float4x4::identity;
|
modelData.world = Oyster::Math3D::Float4x4::identity;
|
||||||
translate = Oyster::Math3D::TranslationMatrix(Oyster::Math::Float3(0, 320, 0));
|
translate = Oyster::Math3D::TranslationMatrix(Oyster::Math::Float3(10, 305, 0));
|
||||||
|
|
||||||
modelData.world = modelData.world * translate;
|
modelData.world = modelData.world * translate;
|
||||||
modelData.visible = true;
|
modelData.visible = true;
|
||||||
modelData.modelPath = L"char_renderTest.dan";
|
modelData.modelPath = L"crystalformation_b.dan";
|
||||||
modelData.id = 2;
|
modelData.id = id++;
|
||||||
// load models
|
|
||||||
obj = new C_Player();
|
|
||||||
privData->object.push_back(obj);
|
|
||||||
privData->object[privData->object.size() -1 ]->Init(modelData);
|
|
||||||
|
|
||||||
// add player model 2
|
|
||||||
modelData.world = Oyster::Math3D::Float4x4::identity;
|
|
||||||
translate = Oyster::Math3D::TranslationMatrix(Oyster::Math::Float3(50, 320, 0));
|
|
||||||
|
|
||||||
modelData.world = modelData.world * translate;
|
|
||||||
modelData.visible = true;
|
|
||||||
modelData.modelPath = L"char_renderTest.dan";
|
|
||||||
modelData.id = 3;
|
|
||||||
// load models
|
// load models
|
||||||
obj = new C_Player();
|
obj = new C_Player();
|
||||||
privData->object.push_back(obj);
|
privData->object.push_back(obj);
|
||||||
|
@ -134,25 +122,39 @@ bool GameState::LoadModels(std::wstring mapFile)
|
||||||
modelData.world = modelData.world * translate;
|
modelData.world = modelData.world * translate;
|
||||||
modelData.visible = false;
|
modelData.visible = false;
|
||||||
modelData.modelPath = L"building_corporation.dan";
|
modelData.modelPath = L"building_corporation.dan";
|
||||||
modelData.id = 4;
|
modelData.id = id++;
|
||||||
// load models
|
// load models
|
||||||
obj = new C_Player();
|
obj = new C_Player();
|
||||||
privData->object.push_back(obj);
|
privData->object.push_back(obj);
|
||||||
privData->object[privData->object.size() -1 ]->Init(modelData);
|
privData->object[privData->object.size() -1 ]->Init(modelData);
|
||||||
|
|
||||||
// add crystal model
|
// add player model
|
||||||
modelData.world = Oyster::Math3D::Float4x4::identity;
|
modelData.world = Oyster::Math3D::Float4x4::identity;
|
||||||
translate = Oyster::Math3D::TranslationMatrix(Oyster::Math::Float3(10, 305, 0));
|
translate = Oyster::Math3D::TranslationMatrix(Oyster::Math::Float3(0, 320, 0));
|
||||||
|
|
||||||
modelData.world = modelData.world * translate;
|
modelData.world = modelData.world * translate;
|
||||||
modelData.visible = true;
|
modelData.visible = true;
|
||||||
modelData.modelPath = L"crystalformation_b.dan";
|
modelData.modelPath = L"char_renderTest.dan";
|
||||||
modelData.id = 5;
|
modelData.id = id++;
|
||||||
// load models
|
// load models
|
||||||
obj = new C_Player();
|
obj = new C_Player();
|
||||||
privData->object.push_back(obj);
|
privData->object.push_back(obj);
|
||||||
privData->object[privData->object.size() -1 ]->Init(modelData);
|
privData->object[privData->object.size() -1 ]->Init(modelData);
|
||||||
|
|
||||||
|
// add player model 2
|
||||||
|
modelData.world = Oyster::Math3D::Float4x4::identity;
|
||||||
|
translate = Oyster::Math3D::TranslationMatrix(Oyster::Math::Float3(50, 320, 0));
|
||||||
|
|
||||||
|
modelData.world = modelData.world * translate;
|
||||||
|
modelData.visible = true;
|
||||||
|
modelData.modelPath = L"char_renderTest.dan";
|
||||||
|
modelData.id = id++;
|
||||||
|
// load models
|
||||||
|
obj = new C_Player();
|
||||||
|
privData->object.push_back(obj);
|
||||||
|
privData->object[privData->object.size() -1 ]->Init(modelData);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -309,8 +311,8 @@ void GameState::readKeyInput(InputClass* KeyInput)
|
||||||
if (KeyInput->IsMousePressed())
|
if (KeyInput->IsMousePressed())
|
||||||
{
|
{
|
||||||
camera->Yaw(-KeyInput->GetYaw());
|
camera->Yaw(-KeyInput->GetYaw());
|
||||||
//camera->Pitch(KeyInput->GetPitch());
|
camera->Pitch(KeyInput->GetPitch());
|
||||||
//pitch = KeyInput->GetPitch();
|
pitch = KeyInput->GetPitch();
|
||||||
camera->UpdateViewMatrix();
|
camera->UpdateViewMatrix();
|
||||||
GameLogic::Protocol_PlayerLook playerLookDir;
|
GameLogic::Protocol_PlayerLook playerLookDir;
|
||||||
Oyster::Math::Float4 look = camera->GetLook();
|
Oyster::Math::Float4 look = camera->GetLook();
|
||||||
|
@ -385,28 +387,34 @@ 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->setLook((Oyster::Math::Float3(world[8], world[9], world[10])));
|
|
||||||
if(i == myId) // playerobj
|
if(i == myId) // playerobj
|
||||||
{
|
{
|
||||||
camera->setRight((Oyster::Math::Float3(world[0], world[1], world[2])));
|
Oyster::Math::Float3 right = Oyster::Math::Float3(world[0], world[1], world[2]);
|
||||||
camera->setUp(Oyster::Math::Float3(world[4], world[5], world[6]));
|
|
||||||
Oyster::Math::Float3 cameraLook = camera->GetLook();
|
|
||||||
Oyster::Math::Float3 objForward = (Oyster::Math::Float3(world[8], world[9], world[10]));
|
|
||||||
|
|
||||||
camera->setLook(objForward);
|
|
||||||
camera->UpdateViewMatrix();
|
|
||||||
Oyster::Math::Float3 pos = Oyster::Math::Float3(world[12], world[13], world[14]);
|
|
||||||
Oyster::Math::Float3 up = Oyster::Math::Float3(world[4], world[5], world[6]);
|
Oyster::Math::Float3 up = Oyster::Math::Float3(world[4], world[5], world[6]);
|
||||||
|
Oyster::Math::Float3 objForward = (Oyster::Math::Float3(world[8], world[9], world[10]));
|
||||||
|
Oyster::Math::Float3 pos = Oyster::Math::Float3(world[12], world[13], world[14]);
|
||||||
|
|
||||||
|
Oyster::Math::Float3 cameraLook = camera->GetLook();
|
||||||
|
Oyster::Math::Float3 cameraUp = camera->GetUp();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*Oyster::Math::Float3 newUp = cameraUp.Dot(up);
|
||||||
|
up *= newUp;
|
||||||
|
up.Normalize();
|
||||||
|
Oyster::Math::Float3 newLook = up.Cross(right);
|
||||||
|
newLook.Normalize();*/
|
||||||
|
|
||||||
|
camera->setRight(right);
|
||||||
|
camera->setUp(up);
|
||||||
|
//camera->setLook(objForward);
|
||||||
|
|
||||||
up *= 2;
|
up *= 2;
|
||||||
objForward *= -3;
|
objForward *= -3;
|
||||||
Oyster::Math::Float3 cameraPos = up + pos + objForward;
|
Oyster::Math::Float3 cameraPos = up + pos + objForward;
|
||||||
//camera->Pitch(pitch);
|
|
||||||
camera->SetPosition(cameraPos);
|
camera->SetPosition(cameraPos);
|
||||||
//camera->LookAt(pos, dir, up);
|
|
||||||
//Oyster::Math::Float3 newLook = objForward;
|
|
||||||
camera->UpdateViewMatrix();
|
camera->UpdateViewMatrix();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,30 +39,64 @@ void Level::InitiateLevel(float radius)
|
||||||
levelObj = new StaticObject(rigidBody, LevelCollisionBefore, LevelCollisionAfter, OBJECT_TYPE::OBJECT_TYPE_WORLD);
|
levelObj = new StaticObject(rigidBody, LevelCollisionBefore, LevelCollisionAfter, OBJECT_TYPE::OBJECT_TYPE_WORLD);
|
||||||
rigidBody->SetCustomTag(levelObj);
|
rigidBody->SetCustomTag(levelObj);
|
||||||
|
|
||||||
|
//this->dynamicObjects = new DynamicArray< DynamicObject>;
|
||||||
// add box
|
// add box
|
||||||
API::SimpleBodyDescription sbDesc_TestBox;
|
API::SimpleBodyDescription sbDesc_TestBox;
|
||||||
sbDesc_TestBox.centerPosition = Oyster::Math::Float4(10,320,0,0);
|
sbDesc_TestBox.centerPosition = Oyster::Math::Float4(10,320,0,0);
|
||||||
sbDesc_TestBox.ignoreGravity = false;
|
sbDesc_TestBox.ignoreGravity = false;
|
||||||
|
|
||||||
sbDesc_TestBox.mass = 50;
|
sbDesc_TestBox.mass = 50;
|
||||||
sbDesc_TestBox.size = Oyster::Math::Float4(4,4,4,0);
|
sbDesc_TestBox.size = Oyster::Math::Float4(2,2,2,0);
|
||||||
|
|
||||||
|
|
||||||
ICustomBody* rigidBody_TestBox = API::Instance().CreateRigidBody(sbDesc_TestBox).Release();
|
ICustomBody* rigidBody_TestBox = API::Instance().CreateRigidBody(sbDesc_TestBox).Release();
|
||||||
rigidBody_TestBox->SetSubscription(Level::PhysicsOnMoveLevel);
|
rigidBody_TestBox->SetSubscription(Level::PhysicsOnMoveLevel);
|
||||||
|
|
||||||
testBox = new DynamicObject(rigidBody_TestBox,Object::DefaultCollisionBefore, Object::DefaultCollisionAfter, OBJECT_TYPE::OBJECT_TYPE_BOX);
|
this->dynamicObjects.Push(new DynamicObject(rigidBody_TestBox,Object::DefaultCollisionBefore, Object::DefaultCollisionAfter, OBJECT_TYPE::OBJECT_TYPE_BOX));
|
||||||
rigidBody_TestBox->SetCustomTag(testBox);
|
rigidBody_TestBox->SetCustomTag(this->dynamicObjects[0]);
|
||||||
rigidBody_TestBox->GetState(state);
|
rigidBody_TestBox->GetState(state);
|
||||||
state.ApplyLinearImpulse(Oyster::Math::Float3(0,0,0));
|
state.ApplyLinearImpulse(Oyster::Math::Float3(0,0,0));
|
||||||
rigidBody_TestBox->SetState(state);
|
rigidBody_TestBox->SetState(state);
|
||||||
|
|
||||||
|
// add crystal
|
||||||
|
API::SimpleBodyDescription sbDesc_Crystal;
|
||||||
|
sbDesc_Crystal.centerPosition = Oyster::Math::Float4(10, 305, 0, 0);
|
||||||
|
sbDesc_Crystal.ignoreGravity = false;
|
||||||
|
|
||||||
|
sbDesc_Crystal.mass = 70;
|
||||||
|
sbDesc_Crystal.size = Oyster::Math::Float4(2,3,2,0);
|
||||||
|
|
||||||
|
|
||||||
|
ICustomBody* rigidBody_Crystal = API::Instance().CreateRigidBody(sbDesc_Crystal).Release();
|
||||||
|
rigidBody_Crystal->SetSubscription(Level::PhysicsOnMoveLevel);
|
||||||
|
this->dynamicObjects.Push(new DynamicObject(rigidBody_Crystal,Object::DefaultCollisionBefore, Object::DefaultCollisionAfter, OBJECT_TYPE::OBJECT_TYPE_BOX));
|
||||||
|
rigidBody_Crystal->SetCustomTag(this->dynamicObjects[1]);
|
||||||
|
rigidBody_Crystal->GetState(state);
|
||||||
|
state.ApplyLinearImpulse(Oyster::Math::Float3(0,0,0));
|
||||||
|
rigidBody_Crystal->SetState(state);
|
||||||
|
|
||||||
|
// add house
|
||||||
|
API::SimpleBodyDescription sbDesc_House;
|
||||||
|
sbDesc_House.centerPosition = Oyster::Math::Float4(50, 300, 0, 0);
|
||||||
|
sbDesc_House.ignoreGravity = false;
|
||||||
|
|
||||||
|
sbDesc_House.mass = 70;
|
||||||
|
sbDesc_House.size = Oyster::Math::Float4(2,3,2,0);
|
||||||
|
|
||||||
|
|
||||||
|
ICustomBody* rigidBody_House = API::Instance().CreateRigidBody(sbDesc_House).Release();
|
||||||
|
rigidBody_House->SetSubscription(Level::PhysicsOnMoveLevel);
|
||||||
|
this->staticObjects.Push(new StaticObject(rigidBody_House,Object::DefaultCollisionBefore, Object::DefaultCollisionAfter, OBJECT_TYPE::OBJECT_TYPE_GENERIC));
|
||||||
|
rigidBody_House->SetCustomTag(this->staticObjects[0]);
|
||||||
|
rigidBody_House->GetState(state);
|
||||||
|
state.ApplyLinearImpulse(Oyster::Math::Float3(0,0,0));
|
||||||
|
rigidBody_House->SetState(state);
|
||||||
|
|
||||||
|
|
||||||
// add gravitation
|
// add gravitation
|
||||||
API::Gravity gravityWell;
|
API::Gravity gravityWell;
|
||||||
gravityWell.gravityType = API::Gravity::GravityType_Well;
|
gravityWell.gravityType = API::Gravity::GravityType_Well;
|
||||||
gravityWell.well.mass = 1e18f;
|
gravityWell.well.mass = 1e17f;
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
@ -84,10 +118,12 @@ void Level::RespawnPlayer(Player *player)
|
||||||
|
|
||||||
Object* Level::GetObj( int ID) const
|
Object* Level::GetObj( int ID) const
|
||||||
{
|
{
|
||||||
if( ID == 0 )
|
for (int i = 0; i< this->dynamicObjects.Size(); i++)
|
||||||
return (Object*)levelObj;
|
{
|
||||||
else
|
if(this->dynamicObjects[i]->GetID() == ID)
|
||||||
return (Object*)testBox;
|
return this->dynamicObjects[i];
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
void Level::PhysicsOnMoveLevel(const ICustomBody *object)
|
void Level::PhysicsOnMoveLevel(const ICustomBody *object)
|
||||||
{
|
{
|
||||||
|
|
|
@ -71,7 +71,6 @@ namespace GameLogic
|
||||||
GameMode gameMode;
|
GameMode gameMode;
|
||||||
Utility::DynamicMemory::SmartPointer<Oyster::Physics::ICustomBody> rigidBodyLevel;
|
Utility::DynamicMemory::SmartPointer<Oyster::Physics::ICustomBody> rigidBodyLevel;
|
||||||
StaticObject *levelObj;
|
StaticObject *levelObj;
|
||||||
DynamicObject *testBox;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -120,9 +120,21 @@ void Object::BeginFrame()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
if(currPhysicsState.GetLinearMomentum() !=currPhysicsState.GetLinearMomentum())
|
||||||
|
{
|
||||||
|
//error
|
||||||
|
int i =0 ;
|
||||||
|
}
|
||||||
|
if(currPhysicsState.GetCenterPosition() !=currPhysicsState.GetCenterPosition())
|
||||||
|
{
|
||||||
|
//error
|
||||||
|
int i =0 ;
|
||||||
|
}
|
||||||
|
if(currPhysicsState.GetAngularAxis() !=currPhysicsState.GetAngularAxis())
|
||||||
|
{
|
||||||
|
//error
|
||||||
|
int i =0 ;
|
||||||
|
}
|
||||||
this->rigidBody->SetState(this->newPhysicsState);
|
this->rigidBody->SetState(this->newPhysicsState);
|
||||||
}
|
}
|
||||||
// update physic
|
// update physic
|
||||||
|
@ -130,6 +142,11 @@ void Object::EndFrame()
|
||||||
{
|
{
|
||||||
this->currPhysicsState = this->rigidBody->GetState();
|
this->currPhysicsState = this->rigidBody->GetState();
|
||||||
|
|
||||||
|
if(currPhysicsState.GetGravityNormal() !=currPhysicsState.GetGravityNormal())
|
||||||
|
{
|
||||||
|
//error
|
||||||
|
int i =0 ;
|
||||||
|
}
|
||||||
if(currPhysicsState.GetGravityNormal()!= Float3::null)
|
if(currPhysicsState.GetGravityNormal()!= Float3::null)
|
||||||
{
|
{
|
||||||
Oyster::Math::Float4 axis;
|
Oyster::Math::Float4 axis;
|
||||||
|
@ -144,6 +161,9 @@ void Object::EndFrame()
|
||||||
Oyster::Math::Float3 debug = ::LinearAlgebra3D::WorldAxisOf(::LinearAlgebra3D::Rotation(axis.xyz), Oyster::Math::Float3::standard_unit_y);
|
Oyster::Math::Float3 debug = ::LinearAlgebra3D::WorldAxisOf(::LinearAlgebra3D::Rotation(axis.xyz), Oyster::Math::Float3::standard_unit_y);
|
||||||
debug += currPhysicsState.GetGravityNormal();
|
debug += currPhysicsState.GetGravityNormal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this->newPhysicsState = this->currPhysicsState;
|
this->newPhysicsState = this->currPhysicsState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
using namespace GameLogic;
|
using namespace GameLogic;
|
||||||
using namespace Oyster::Physics;
|
using namespace Oyster::Physics;
|
||||||
|
const int MOVE_FORCE = 50000;
|
||||||
Player::Player()
|
Player::Player()
|
||||||
:DynamicObject()
|
:DynamicObject()
|
||||||
{
|
{
|
||||||
|
@ -67,8 +67,17 @@ void Player::BeginFrame()
|
||||||
|
|
||||||
void Player::EndFrame()
|
void Player::EndFrame()
|
||||||
{
|
{
|
||||||
|
// snap to axis
|
||||||
Object::EndFrame();
|
Object::EndFrame();
|
||||||
|
// rotate
|
||||||
|
|
||||||
|
Oyster::Math::Float3 up = currPhysicsState.GetOrientation().v[1];
|
||||||
|
Oyster::Math::Float3 deltaAxis = up * (-dx * 0.02) ;
|
||||||
|
Oyster::Math::Float3 oldOrt = currPhysicsState.GetRotation();
|
||||||
|
|
||||||
|
currPhysicsState.AddRotation(deltaAxis);
|
||||||
|
dx = 0;
|
||||||
|
this->newPhysicsState = this->currPhysicsState;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::Move(const PLAYER_MOVEMENT &movement)
|
void Player::Move(const PLAYER_MOVEMENT &movement)
|
||||||
|
@ -101,13 +110,13 @@ void Player::MoveForward()
|
||||||
{
|
{
|
||||||
Oyster::Math::Float3 forward = currPhysicsState.GetOrientation().v[2];
|
Oyster::Math::Float3 forward = currPhysicsState.GetOrientation().v[2];
|
||||||
//Oyster::Math::Float3 forward = lookDir;
|
//Oyster::Math::Float3 forward = lookDir;
|
||||||
newPhysicsState.ApplyLinearImpulse(forward * (30000 * this->gameInstance->GetFrameTime()));
|
newPhysicsState.ApplyLinearImpulse(forward * (MOVE_FORCE * this->gameInstance->GetFrameTime()));
|
||||||
}
|
}
|
||||||
void Player::MoveBackwards()
|
void Player::MoveBackwards()
|
||||||
{
|
{
|
||||||
Oyster::Math::Float3 forward = currPhysicsState.GetOrientation().v[2];
|
Oyster::Math::Float3 forward = currPhysicsState.GetOrientation().v[2];
|
||||||
//Oyster::Math::Float3 forward = lookDir;
|
//Oyster::Math::Float3 forward = lookDir;
|
||||||
newPhysicsState.ApplyLinearImpulse(-forward * 30000 * this->gameInstance->GetFrameTime());
|
newPhysicsState.ApplyLinearImpulse(-forward * MOVE_FORCE * this->gameInstance->GetFrameTime());
|
||||||
}
|
}
|
||||||
void Player::MoveRight()
|
void Player::MoveRight()
|
||||||
{
|
{
|
||||||
|
@ -115,7 +124,7 @@ void Player::MoveRight()
|
||||||
Oyster::Math::Float3 forward = currPhysicsState.GetOrientation().v[2];
|
Oyster::Math::Float3 forward = currPhysicsState.GetOrientation().v[2];
|
||||||
//Oyster::Math::Float3 forward = lookDir;
|
//Oyster::Math::Float3 forward = lookDir;
|
||||||
Oyster::Math::Float3 r = (-currPhysicsState.GetGravityNormal()).Cross(forward);
|
Oyster::Math::Float3 r = (-currPhysicsState.GetGravityNormal()).Cross(forward);
|
||||||
newPhysicsState.ApplyLinearImpulse(-r * 30000 * this->gameInstance->GetFrameTime());
|
newPhysicsState.ApplyLinearImpulse(-r * MOVE_FORCE * this->gameInstance->GetFrameTime());
|
||||||
|
|
||||||
}
|
}
|
||||||
void Player::MoveLeft()
|
void Player::MoveLeft()
|
||||||
|
@ -124,7 +133,7 @@ void Player::MoveLeft()
|
||||||
Oyster::Math::Float3 forward = currPhysicsState.GetOrientation().v[2];
|
Oyster::Math::Float3 forward = currPhysicsState.GetOrientation().v[2];
|
||||||
//Oyster::Math::Float3 forward = lookDir;
|
//Oyster::Math::Float3 forward = lookDir;
|
||||||
Oyster::Math::Float3 r = (-currPhysicsState.GetGravityNormal()).Cross(forward); //Still get zero
|
Oyster::Math::Float3 r = (-currPhysicsState.GetGravityNormal()).Cross(forward); //Still get zero
|
||||||
newPhysicsState.ApplyLinearImpulse(r * 30000 * this->gameInstance->GetFrameTime());
|
newPhysicsState.ApplyLinearImpulse(r * MOVE_FORCE * this->gameInstance->GetFrameTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::UseWeapon(const WEAPON_FIRE &usage)
|
void Player::UseWeapon(const WEAPON_FIRE &usage)
|
||||||
|
@ -147,19 +156,20 @@ void Player::Rotate(const Oyster::Math3D::Float4 lookDir)
|
||||||
{
|
{
|
||||||
int i =0 ;
|
int i =0 ;
|
||||||
}
|
}
|
||||||
Oyster::Math::Float3 up = currPhysicsState.GetOrientation().v[1];
|
//Oyster::Math::Float3 up = currPhysicsState.GetOrientation().v[1];
|
||||||
Oyster::Math::Float3 deltaAxis = up * (-dx * 0.02) ;
|
//Oyster::Math::Float3 deltaAxis = up * (-dx * 0.02) ;
|
||||||
Oyster::Math::Float3 oldOrt = currPhysicsState.GetRotation();
|
//Oyster::Math::Float3 oldOrt = currPhysicsState.GetRotation();
|
||||||
|
|
||||||
newPhysicsState.SetRotation(oldOrt + deltaAxis);
|
//newPhysicsState.SetRotation(oldOrt + deltaAxis);
|
||||||
|
|
||||||
this->lookDir = lookDir.xyz;
|
this->lookDir = lookDir.xyz;
|
||||||
|
this->dx = lookDir.w;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::Jump()
|
void Player::Jump()
|
||||||
{
|
{
|
||||||
Oyster::Math::Float3 up = currPhysicsState.GetOrientation().v[1];
|
Oyster::Math::Float3 up = currPhysicsState.GetOrientation().v[1];
|
||||||
newPhysicsState.ApplyLinearImpulse(up * 30000 * this->gameInstance->GetFrameTime());
|
newPhysicsState.ApplyLinearImpulse(up * MOVE_FORCE * this->gameInstance->GetFrameTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Player::IsWalking()
|
bool Player::IsWalking()
|
||||||
|
|
|
@ -83,6 +83,7 @@ namespace GameLogic
|
||||||
Weapon *weapon;
|
Weapon *weapon;
|
||||||
PLAYER_STATE playerState;
|
PLAYER_STATE playerState;
|
||||||
Oyster::Math::Float3 lookDir;
|
Oyster::Math::Float3 lookDir;
|
||||||
|
Oyster::Math::Float dx;
|
||||||
|
|
||||||
bool hasTakenDamage;
|
bool hasTakenDamage;
|
||||||
float invincibleCooldown;
|
float invincibleCooldown;
|
||||||
|
|
|
@ -122,6 +122,18 @@ namespace DanBias
|
||||||
GameSession::gameSession->Send(*p.GetProtocol());
|
GameSession::gameSession->Send(*p.GetProtocol());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
obj = NULL;
|
||||||
|
obj =((GameLogic::ILevelData*)movedObject)->GetObjectAt(2);
|
||||||
|
if(obj)
|
||||||
|
{
|
||||||
|
if(obj->GetObjectType() == OBJECT_TYPE_BOX)
|
||||||
|
{
|
||||||
|
int id = obj->GetID();
|
||||||
|
Oyster::Math::Float4x4 world = obj->GetOrientation();
|
||||||
|
Protocol_ObjectPosition p(world, id);
|
||||||
|
GameSession::gameSession->Send(*p.GetProtocol());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue