smoother simulation ans some fixes on network part
This commit is contained in:
parent
d956b8f2b3
commit
cf49c8699c
@ -28,9 +28,9 @@ void Server::update()
|
|||||||
if(!clients[i]->isOk())
|
if(!clients[i]->isOk())
|
||||||
{
|
{
|
||||||
delete clients[i];
|
delete clients[i];
|
||||||
clients[i--] = clients.back();
|
clients[i] = clients.back();
|
||||||
clients.pop_back();
|
clients.pop_back();
|
||||||
simulation.removeClient(i);
|
simulation.removeClient(i--);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// update the simulation
|
// update the simulation
|
||||||
@ -42,13 +42,13 @@ void Server::update()
|
|||||||
|
|
||||||
Server::~Server()
|
Server::~Server()
|
||||||
{
|
{
|
||||||
if(server->isListening())
|
|
||||||
server->close();
|
|
||||||
server->deleteLater();
|
|
||||||
timer->stop();
|
timer->stop();
|
||||||
delete timer;
|
delete timer;
|
||||||
for(ServerClient *c : clients)
|
for(ServerClient *c : clients)
|
||||||
delete c;
|
delete c;
|
||||||
|
if(server->isListening())
|
||||||
|
server->close();
|
||||||
|
server->deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Server::on_newConnection()
|
void Server::on_newConnection()
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#define PI 3.1416f
|
#define PI 3.1416f
|
||||||
#define MAX_ANGULAR_SPEED 0.05f
|
#define MAX_ANGULAR_SPEED 0.05f
|
||||||
#define MAX_FORWARD_SPEED 1.f
|
#define MAX_FORWARD_SPEED 1.f
|
||||||
#define MAX_REVERSE_SPEED 0.5f
|
#define MAX_REVERSE_SPEED 0.2f
|
||||||
#define MAX_ACCELERATION 0.02f
|
#define MAX_ACCELERATION 0.02f
|
||||||
#define MAX_DECELERATION (MAX_ACCELERATION*2)
|
#define MAX_DECELERATION (MAX_ACCELERATION*2)
|
||||||
|
|
||||||
@ -48,19 +48,13 @@ void Simulation::clientInput(int i, const DeltaClientPacket &delta)
|
|||||||
InitClientPacket *info = &(worldData[i]);
|
InitClientPacket *info = &(worldData[i]);
|
||||||
float dvforward;
|
float dvforward;
|
||||||
// handling speed
|
// handling speed
|
||||||
if(delta.acceleration > 0.01f) // if accelerating
|
if(fabs(delta.acceleration) > 0.01f) // if accelerating
|
||||||
{
|
{
|
||||||
|
float max = delta.acceleration * info->vforward > 0 ? MAX_ACCELERATION : MAX_DECELERATION;
|
||||||
if(fabs(delta.acceleration) < 1)
|
if(fabs(delta.acceleration) < 1)
|
||||||
dvforward = delta.acceleration*MAX_ACCELERATION;
|
dvforward = delta.acceleration*max;
|
||||||
else
|
else
|
||||||
dvforward = info->vforward >= 0 ? MAX_ACCELERATION : -MAX_ACCELERATION;
|
dvforward = delta.acceleration > 0 ? max : -max;
|
||||||
}
|
|
||||||
else if(delta.acceleration < -0.01f)
|
|
||||||
{
|
|
||||||
if(fabs(delta.acceleration) < 1)
|
|
||||||
dvforward = delta.acceleration*MAX_DECELERATION;
|
|
||||||
else
|
|
||||||
dvforward = info->vforward >= 0 ? -MAX_DECELERATION : MAX_DECELERATION;
|
|
||||||
}
|
}
|
||||||
else // not accelerating
|
else // not accelerating
|
||||||
dvforward = -info->vforward/8;
|
dvforward = -info->vforward/8;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user