add Client::create_shot(); only send one shot to server
This commit is contained in:
parent
59b81aebe0
commit
69f403cee1
@ -144,6 +144,7 @@ void Client::run(bool fullscreen, int width, int height, std::string pname)
|
||||
m_drawing_shot = false;
|
||||
m_left_button_pressed = false;
|
||||
m_shot_fired = true;
|
||||
create_shot();
|
||||
}
|
||||
break;
|
||||
case sf::Event::Resized:
|
||||
@ -383,24 +384,6 @@ void Client::update(double elapsed_time)
|
||||
player->d_pressed = d_pressed;
|
||||
player->rel_mouse_movement = rel_mouse_movement;
|
||||
}
|
||||
|
||||
if(m_shot_fired)
|
||||
{
|
||||
float shot_distance = m_drawing_shot_distance + SHOT_RING_WIDTH / 2.0;
|
||||
sf::Uint8 packet_type = PLAYER_SHOT;
|
||||
client_packet.clear();
|
||||
client_packet << packet_type;
|
||||
client_packet << m_current_player;
|
||||
client_packet << shot_distance;
|
||||
m_net_client->sendData(client_packet, true);
|
||||
m_drawing_shot_distance = 0;
|
||||
player->m_shot_allowed = false;
|
||||
refptr<Shot> shot = new Shot(
|
||||
sf::Vector2f(player->x, player->y),
|
||||
player->direction,
|
||||
shot_distance);
|
||||
m_shots.push_back(shot);
|
||||
}
|
||||
}
|
||||
else if(!registered_player)
|
||||
{
|
||||
@ -424,3 +407,25 @@ void Client::update(double elapsed_time)
|
||||
}
|
||||
m_net_client->Transmit();
|
||||
}
|
||||
|
||||
void Client::create_shot()
|
||||
{
|
||||
if (m_players.size() == 0)
|
||||
return;
|
||||
sf::Packet client_packet;
|
||||
refptr<Player> player = m_players[m_current_player];
|
||||
float shot_distance = m_drawing_shot_distance + SHOT_RING_WIDTH / 2.0;
|
||||
sf::Uint8 packet_type = PLAYER_SHOT;
|
||||
client_packet.clear();
|
||||
client_packet << packet_type;
|
||||
client_packet << m_current_player;
|
||||
client_packet << shot_distance;
|
||||
m_net_client->sendData(client_packet, true);
|
||||
m_drawing_shot_distance = 0;
|
||||
player->m_shot_allowed = false;
|
||||
refptr<Shot> shot = new Shot(
|
||||
sf::Vector2f(player->x, player->y),
|
||||
player->direction,
|
||||
shot_distance);
|
||||
m_shots.push_back(shot);
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ class Client
|
||||
void draw_lava();
|
||||
void draw_shot_ring();
|
||||
void draw_shot_ring_instance();
|
||||
void create_shot();
|
||||
|
||||
bool m_mouse_grabbed;
|
||||
double m_player_dir_x;
|
||||
|
Loading…
x
Reference in New Issue
Block a user