Added: Static fps member to dolphin.cpp, auto-updated with engine->fps, made player movement multiplied by deltatime of last frame.
This commit is contained in:
@@ -16,6 +16,8 @@ const u8 WATER_SIZE = 100;
|
|||||||
|
|
||||||
const u8 OYSTERS_COUNT = 15;
|
const u8 OYSTERS_COUNT = 15;
|
||||||
|
|
||||||
|
float Dolphin::engineFPS = 60.F;
|
||||||
|
|
||||||
Dolphin::Dolphin(Engine *t_engine) : engine(t_engine), camera(&engine->screen)
|
Dolphin::Dolphin(Engine *t_engine) : engine(t_engine), camera(&engine->screen)
|
||||||
{
|
{
|
||||||
oysters = new Collectible[OYSTERS_COUNT];
|
oysters = new Collectible[OYSTERS_COUNT];
|
||||||
@@ -93,8 +95,9 @@ void Dolphin::onInit()
|
|||||||
|
|
||||||
void Dolphin::onUpdate()
|
void Dolphin::onUpdate()
|
||||||
{
|
{
|
||||||
|
Dolphin::engineFPS = engine->fps;
|
||||||
if (engine->pad.isCrossClicked)
|
if (engine->pad.isCrossClicked)
|
||||||
printf("PlayerPos (%f,%f), FPS:%f\n", player.mesh.position.x, player.mesh.position.z, this->engine->fps);
|
printf("Delta multiplier: %f\n", 60.0F / engine->fps);
|
||||||
|
|
||||||
float xDist = player.mesh.position.x - water.position.x;
|
float xDist = player.mesh.position.x - water.position.x;
|
||||||
float zDist = player.mesh.position.z - water.position.z;
|
float zDist = player.mesh.position.z - water.position.z;
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ public:
|
|||||||
void onUpdate();
|
void onUpdate();
|
||||||
|
|
||||||
Engine *engine;
|
Engine *engine;
|
||||||
|
static float engineFPS;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
LightBulb bulb;
|
LightBulb bulb;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "player.hpp"
|
#include "player.hpp"
|
||||||
|
#include "dolphin.hpp"
|
||||||
|
|
||||||
#include <loaders/obj_loader.hpp>
|
#include <loaders/obj_loader.hpp>
|
||||||
#include <loaders/bmp_loader.hpp>
|
#include <loaders/bmp_loader.hpp>
|
||||||
@@ -38,7 +39,6 @@ void Player::update(Pad &t_pad)
|
|||||||
lift += 0.05F;
|
lift += 0.05F;
|
||||||
if (lift < 0.1F && lift > -0.1F)
|
if (lift < 0.1F && lift > -0.1F)
|
||||||
lift = 0;
|
lift = 0;
|
||||||
velocity = 0;
|
|
||||||
if (t_pad.lJoyV <= 100)
|
if (t_pad.lJoyV <= 100)
|
||||||
velocity = 1;
|
velocity = 1;
|
||||||
else if (t_pad.lJoyV >= 200)
|
else if (t_pad.lJoyV >= 200)
|
||||||
@@ -81,9 +81,12 @@ void Player::update(Pad &t_pad)
|
|||||||
mesh.playAnimation(1, 14, 0);
|
mesh.playAnimation(1, 14, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
velocity *= 60.0F / Dolphin::engineFPS; //Moving by deltatime of last frame.
|
||||||
mesh.position.z +=
|
mesh.position.z +=
|
||||||
Math::cos(mesh.rotation.z) * velocity * (bIsJumping + 1);
|
Math::cos(mesh.rotation.z) * velocity * (bIsJumping + 1);
|
||||||
mesh.position.x +=
|
mesh.position.x +=
|
||||||
Math::sin(mesh.rotation.z) * velocity * (bIsJumping + 1);
|
Math::sin(mesh.rotation.z) * velocity * (bIsJumping + 1);
|
||||||
mesh.position.y += lift;
|
mesh.position.y += lift;
|
||||||
|
|
||||||
|
velocity = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user