Moved the hover logic to the server

This commit is contained in:
xethm55 2012-10-01 22:30:41 -04:00
parent 8ed2688095
commit 116f066a80
3 changed files with 15 additions and 9 deletions

View File

@ -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);

View File

@ -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;
} }

View File

@ -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;
}; };