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())
|
||||
{
|
||||
delete clients[i];
|
||||
clients[i--] = clients.back();
|
||||
clients[i] = clients.back();
|
||||
clients.pop_back();
|
||||
simulation.removeClient(i);
|
||||
simulation.removeClient(i--);
|
||||
}
|
||||
}
|
||||
// update the simulation
|
||||
@ -42,13 +42,13 @@ void Server::update()
|
||||
|
||||
Server::~Server()
|
||||
{
|
||||
if(server->isListening())
|
||||
server->close();
|
||||
server->deleteLater();
|
||||
timer->stop();
|
||||
delete timer;
|
||||
for(ServerClient *c : clients)
|
||||
delete c;
|
||||
if(server->isListening())
|
||||
server->close();
|
||||
server->deleteLater();
|
||||
}
|
||||
|
||||
void Server::on_newConnection()
|
||||
|
@ -6,7 +6,7 @@
|
||||
#define PI 3.1416f
|
||||
#define MAX_ANGULAR_SPEED 0.05f
|
||||
#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_DECELERATION (MAX_ACCELERATION*2)
|
||||
|
||||
@ -48,19 +48,13 @@ void Simulation::clientInput(int i, const DeltaClientPacket &delta)
|
||||
InitClientPacket *info = &(worldData[i]);
|
||||
float dvforward;
|
||||
// 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)
|
||||
dvforward = delta.acceleration*MAX_ACCELERATION;
|
||||
dvforward = delta.acceleration*max;
|
||||
else
|
||||
dvforward = info->vforward >= 0 ? MAX_ACCELERATION : -MAX_ACCELERATION;
|
||||
}
|
||||
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;
|
||||
dvforward = delta.acceleration > 0 ? max : -max;
|
||||
}
|
||||
else // not accelerating
|
||||
dvforward = -info->vforward/8;
|
||||
|
Loading…
x
Reference in New Issue
Block a user