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]->x;
client_packet >> m_players[player_index]->y;
client_packet >> m_players[player_index]->hover;
}
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_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)
{
/* 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)
{
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]->x;
server_packet << m_players[pindex]->y;
server_packet << m_players[pindex]->hover;
m_net_server->sendData(server_packet);
m_players[pindex]->updated = false;
}

View File

@ -2,6 +2,7 @@
#include "Player.h"
#include "refptr.h"
#include "SFML/Config.hpp"
#include "Map.h"
class Server{
public:
@ -14,4 +15,5 @@ class Server{
refptr<Network> m_net_server;
std::map<sf::Uint8, refptr<Player> > m_players;
sf::Clock m_clock;
Map m_map;
};