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