Moved the hover logic to the server
This commit is contained in:
parent
8ed2688095
commit
116f066a80
@ -210,6 +210,7 @@ void Client::update(double elapsed_time)
|
|||||||
client_packet >> m_players[player_index]->direction;
|
client_packet >> m_players[player_index]->direction;
|
||||||
client_packet >> m_players[player_index]->x;
|
client_packet >> m_players[player_index]->x;
|
||||||
client_packet >> m_players[player_index]->y;
|
client_packet >> m_players[player_index]->y;
|
||||||
|
client_packet >> m_players[player_index]->hover;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -286,15 +287,6 @@ void Client::update(double elapsed_time)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* decrease player hover when not over a tile */
|
|
||||||
if (m_map.get_tile_at(m_players[m_current_player]->x,
|
|
||||||
m_players[m_current_player]->y).isNull())
|
|
||||||
{
|
|
||||||
m_players[m_current_player]->hover -= elapsed_time / 10;
|
|
||||||
if (m_players[m_current_player]->hover < 0)
|
|
||||||
m_players[m_current_player]->hover = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_player_dir_x = cos(m_players[m_current_player]->direction);
|
m_player_dir_x = cos(m_players[m_current_player]->direction);
|
||||||
m_player_dir_y = sin(m_players[m_current_player]->direction);
|
m_player_dir_y = sin(m_players[m_current_player]->direction);
|
||||||
|
|
||||||
|
@ -166,6 +166,17 @@ void Server::update( double elapsed_time )
|
|||||||
|
|
||||||
if(m_players[pindex]->m_client->disconnect == CONNECTED)
|
if(m_players[pindex]->m_client->disconnect == CONNECTED)
|
||||||
{
|
{
|
||||||
|
/* decrease player hover when not over a tile */
|
||||||
|
if((m_players[pindex]->hover > 0) &&
|
||||||
|
(m_map.get_tile_at(m_players[pindex]->x, m_players[pindex]->y).isNull()))
|
||||||
|
{
|
||||||
|
m_players[pindex]->hover -= elapsed_time / 10;
|
||||||
|
if (m_players[pindex]->hover < 0)
|
||||||
|
{
|
||||||
|
m_players[pindex]->hover = 0;
|
||||||
|
}
|
||||||
|
m_players[pindex]->updated = true;
|
||||||
|
}
|
||||||
if (KEY_PRESSED == m_players[pindex]->a_pressed)
|
if (KEY_PRESSED == m_players[pindex]->a_pressed)
|
||||||
{
|
{
|
||||||
double direction = m_players[pindex]->direction + M_PI_2;
|
double direction = m_players[pindex]->direction + M_PI_2;
|
||||||
@ -211,6 +222,7 @@ void Server::update( double elapsed_time )
|
|||||||
server_packet << m_players[pindex]->direction;
|
server_packet << m_players[pindex]->direction;
|
||||||
server_packet << m_players[pindex]->x;
|
server_packet << m_players[pindex]->x;
|
||||||
server_packet << m_players[pindex]->y;
|
server_packet << m_players[pindex]->y;
|
||||||
|
server_packet << m_players[pindex]->hover;
|
||||||
m_net_server->sendData(server_packet);
|
m_net_server->sendData(server_packet);
|
||||||
m_players[pindex]->updated = false;
|
m_players[pindex]->updated = false;
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
#include "refptr.h"
|
#include "refptr.h"
|
||||||
#include "SFML/Config.hpp"
|
#include "SFML/Config.hpp"
|
||||||
|
#include "Map.h"
|
||||||
|
|
||||||
class Server{
|
class Server{
|
||||||
public:
|
public:
|
||||||
@ -14,4 +15,5 @@ class Server{
|
|||||||
refptr<Network> m_net_server;
|
refptr<Network> m_net_server;
|
||||||
std::map<sf::Uint8, refptr<Player> > m_players;
|
std::map<sf::Uint8, refptr<Player> > m_players;
|
||||||
sf::Clock m_clock;
|
sf::Clock m_clock;
|
||||||
|
Map m_map;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user