2d
This commit is contained in:
@@ -83,6 +83,7 @@ fn main() {
|
||||
app.add_system(update_visulizer_system);
|
||||
|
||||
app.add_startup_system(setup_level);
|
||||
app.add_startup_system(setup_camera);
|
||||
app.add_system(panic_on_error_system);
|
||||
|
||||
app.run();
|
||||
@@ -159,8 +160,10 @@ fn client_sync_players(
|
||||
mut most_recent_tick: ResMut<MostRecentTick>,
|
||||
) {
|
||||
let client_id = client.client_id();
|
||||
|
||||
while let Some(message) = client.receive_message(ServerChannel::ServerMessages.id()) {
|
||||
let server_message = bincode::deserialize(&message).unwrap();
|
||||
|
||||
match server_message {
|
||||
ServerMessages::PlayerCreate {
|
||||
id,
|
||||
@@ -168,10 +171,13 @@ fn client_sync_players(
|
||||
entity,
|
||||
} => {
|
||||
println!("Player {} connected.", id);
|
||||
let mut client_entity = commands.spawn_bundle(PbrBundle {
|
||||
mesh: meshes.add(Mesh::from(shape::Capsule::default())),
|
||||
material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
|
||||
transform: Transform::from_xyz(translation[0], translation[1], translation[2]),
|
||||
|
||||
let mut client_entity = commands.spawn_bundle(SpriteBundle {
|
||||
sprite: Sprite {
|
||||
color: Color::rgb(0., 0.47, 1.),
|
||||
custom_size: Some(Vec2::new(1., 1.)),
|
||||
..Default::default()
|
||||
},
|
||||
..Default::default()
|
||||
});
|
||||
|
||||
@@ -183,11 +189,14 @@ fn client_sync_players(
|
||||
server_entity: entity,
|
||||
client_entity: client_entity.id(),
|
||||
};
|
||||
|
||||
lobby.players.insert(id, player_info);
|
||||
|
||||
network_mapping.0.insert(entity, client_entity.id());
|
||||
}
|
||||
ServerMessages::PlayerRemove { id } => {
|
||||
println!("Player {} disconnected.", id);
|
||||
|
||||
if let Some(PlayerInfo {
|
||||
server_entity,
|
||||
client_entity,
|
||||
@@ -223,6 +232,7 @@ fn client_sync_players(
|
||||
|
||||
while let Some(message) = client.receive_message(ServerChannel::NetworkFrame.id()) {
|
||||
let frame: NetworkFrame = bincode::deserialize(&message).unwrap();
|
||||
|
||||
match most_recent_tick.0 {
|
||||
None => most_recent_tick.0 = Some(frame.tick),
|
||||
Some(tick) if tick < frame.tick => most_recent_tick.0 = Some(frame.tick),
|
||||
@@ -236,11 +246,16 @@ fn client_sync_players(
|
||||
translation,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
commands.entity(*entity).insert(transform);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn setup_camera(mut commands: Commands) {
|
||||
commands.spawn_bundle(Camera2dBundle::default());
|
||||
}
|
||||
|
||||
#[derive(Component)]
|
||||
struct Target;
|
||||
|
Reference in New Issue
Block a user