Compiles but works erratically

This commit is contained in:
Functioning Member of Society 2023-03-12 02:24:37 +01:00
parent 8994f1e296
commit 94942ef129

View File

@ -50,10 +50,9 @@ int main(int argc, char *argv[])
//scanf("%i", &levelSwitcher.currentLevel); //scanf("%i", &levelSwitcher.currentLevel);
} }
float leftRightVel; irr::core::vector2df movementVec;
float angularVel; float angularVel;
float rotVel; float rotVel;
irr::core::vector2df movementVec;
pb.device = createDevice(irr::video::EDT_OPENGL, irr::core::dimension2d<irr::u32>(pb.screenWidth, pb.screenHeight), 16, false, true, false, &pb.er); pb.device = createDevice(irr::video::EDT_OPENGL, irr::core::dimension2d<irr::u32>(pb.screenWidth, pb.screenHeight), 16, false, true, false, &pb.er);
pb.driver = pb.device -> getVideoDriver(); pb.driver = pb.device -> getVideoDriver();
@ -142,22 +141,22 @@ int main(int argc, char *argv[])
if(pb.er.isKeyDown(irr::KEY_KEY_W)) if(pb.er.isKeyDown(irr::KEY_KEY_W))
{ {
movementVec.Y += angularVel; movementVec.X -= angularVel;
} }
if(pb.er.isKeyDown(irr::KEY_KEY_S)) if(pb.er.isKeyDown(irr::KEY_KEY_S))
{ {
movementVec.Y -= angularVel; movementVec.X += angularVel;
} }
if(pb.er.isKeyDown(irr::KEY_KEY_A)) if(pb.er.isKeyDown(irr::KEY_KEY_A))
{ {
movementVec.X -= angularVel; movementVec.Y += angularVel;
} }
if(pb.er.isKeyDown(irr::KEY_KEY_D)) if(pb.er.isKeyDown(irr::KEY_KEY_D))
{ {
movementVec.X += angularVel; movementVec.Y -= angularVel;
} }
@ -235,19 +234,20 @@ int main(int argc, char *argv[])
if(pb.er.isKeyDown(irr::KEY_KEY_W) || pb.er.isKeyDown(irr::KEY_KEY_S) || pb.er.isKeyDown(irr::KEY_KEY_D) || pb.er.isKeyDown(irr::KEY_KEY_A)) if(pb.er.isKeyDown(irr::KEY_KEY_W) || pb.er.isKeyDown(irr::KEY_KEY_S) || pb.er.isKeyDown(irr::KEY_KEY_D) || pb.er.isKeyDown(irr::KEY_KEY_A))
{ {
// rotating movementVec vector by playerRot.Y degrees // rotating movementVec vector by playerRot.Y degrees
movementAngle.X = movementAngle.X * cos(irr::core::degToRad(playerRot.Y)) - movementAngle.Y * sin(irr::core::degToRad(playerRot.Y)); movementVec.X = movementVec.X * cos(irr::core::degToRad(playerRot.Y)) - movementVec.Y * sin(irr::core::degToRad(playerRot.Y));
movementAngle.Y = movementAngle.X * sin(irr::core::degToRad(playerRot.Y)) + movementAngle.Y * cos(irr::core::degToRad(playerRot.Y)); movementVec.Y = movementVec.X * sin(irr::core::degToRad(playerRot.Y)) + movementVec.Y * cos(irr::core::degToRad(playerRot.Y));
//pb.player -> setPosition(irr::core::vector3df(playerPos.X - cos(irr::core::degToRad(playerRot.Y + movementAngle)) * angularVel, playerPos.Y, playerPos.Z + sin(irr::core::degToRad(playerRot.Y + movementAngle)) * angularVel)); //pb.player -> setPosition(irr::core::vector3df(playerPos.X - cos(irr::core::degToRad(playerRot.Y + movementAngle)) * angularVel, playerPos.Y, playerPos.Z + sin(irr::core::degToRad(playerRot.Y + movementAngle)) * angularVel));
//pb.camera -> setTarget(irr::core::vector3df(playerPos.X - cos(irr::core::degToRad(playerRot.Y + movementAngle)) * angularVel, playerPos.Y + pb.verticalCamRot, playerPos.Z + sin(irr::core::degToRad(playerRot.Y + movementAngle)) * angularVel)); //pb.camera -> setTarget(irr::core::vector3df(playerPos.X - cos(irr::core::degToRad(playerRot.Y + movementAngle)) * angularVel, playerPos.Y + pb.verticalCamRot, playerPos.Z + sin(irr::core::degToRad(playerRot.Y + movementAngle)) * angularVel));
pb.player -> setPosition(irr::core::vector3df(playerPos.X - movementAngle.X * angularVel, playerPos.Y, playerPos.Z + movementAngle.Y * angularVel)); pb.player -> setPosition(irr::core::vector3df(playerPos.X - movementVec.X * angularVel, playerPos.Y, playerPos.Z + movementVec.Y * angularVel));
pb.camera -> setTarget(irr::core::vector3df(playerPos.X - movementAngle.X * angularVel, playerPos.Y + pb.verticalCamRot, playerPos.Z + movementAngle.Y * angularVel));
pb.player -> updateAbsolutePosition(); pb.player -> updateAbsolutePosition();
} }
pb.camera -> setTarget(irr::core::vector3df(playerPos.X - movementVec.X * angularVel, playerPos.Y + pb.verticalCamRot, playerPos.Z + movementVec.Y * angularVel));
// Water on Level 7 // // Water on Level 7 //
if(levelSwitcher.currentLevel == 7) if(levelSwitcher.currentLevel == 7)
{ {