fixed flickering on projectile spawn. send origin
This commit is contained in:
parent
614092a8eb
commit
05ca78229f
@ -243,17 +243,22 @@ fn client_sync_players(
|
|||||||
network_mapping.0.remove(&server_entity);
|
network_mapping.0.remove(&server_entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ServerMessages::SpawnProjectile { entity } => {
|
ServerMessages::SpawnProjectile { entity, origin } => {
|
||||||
let projectile_entity = commands.spawn_bundle(SpriteBundle {
|
let projectile_entity = commands
|
||||||
sprite: Sprite {
|
.spawn_bundle(SpriteBundle {
|
||||||
color: Color::rgb(0.25, 0.25, 0.75),
|
sprite: Sprite {
|
||||||
custom_size: Some(Vec2::new(5., 5.0)),
|
color: Color::rgb(0.25, 0.25, 0.75),
|
||||||
|
custom_size: Some(Vec2::new(5., 5.0)),
|
||||||
|
..default()
|
||||||
|
},
|
||||||
..default()
|
..default()
|
||||||
},
|
})
|
||||||
..default()
|
.insert_bundle(TransformBundle::from(Transform::from_xyz(
|
||||||
});
|
origin.x, origin.y, 0.,
|
||||||
|
)))
|
||||||
|
.id();
|
||||||
|
|
||||||
network_mapping.0.insert(entity, projectile_entity.id());
|
network_mapping.0.insert(entity, projectile_entity);
|
||||||
}
|
}
|
||||||
ServerMessages::DespawnProjectile { entity } => {
|
ServerMessages::DespawnProjectile { entity } => {
|
||||||
if let Some(entity) = network_mapping.0.remove(&entity) {
|
if let Some(entity) = network_mapping.0.remove(&entity) {
|
||||||
|
@ -63,8 +63,8 @@ fn main() {
|
|||||||
app.insert_resource(new_renet_server());
|
app.insert_resource(new_renet_server());
|
||||||
app.insert_resource(RenetServerVisualizer::<200>::default());
|
app.insert_resource(RenetServerVisualizer::<200>::default());
|
||||||
|
|
||||||
app.add_system(server_update_system);
|
app.add_system_to_stage(CoreStage::Update, server_update_system);
|
||||||
app.add_system(server_network_sync);
|
app.add_system_to_stage(CoreStage::PreUpdate, server_network_sync);
|
||||||
app.add_system(move_players_system);
|
app.add_system(move_players_system);
|
||||||
app.add_system(jump_system);
|
app.add_system(jump_system);
|
||||||
app.add_system(jump_reset);
|
app.add_system(jump_reset);
|
||||||
@ -178,7 +178,7 @@ fn server_update_system(
|
|||||||
);
|
);
|
||||||
|
|
||||||
let entity = spawn_projectile(&mut commands, origin, direction);
|
let entity = spawn_projectile(&mut commands, origin, direction);
|
||||||
let message = ServerMessages::SpawnProjectile { entity };
|
let message = ServerMessages::SpawnProjectile { entity, origin };
|
||||||
let message = bincode::serialize(&message).unwrap();
|
let message = bincode::serialize(&message).unwrap();
|
||||||
|
|
||||||
server.broadcast_message(ServerChannel::ServerMessages.id(), message);
|
server.broadcast_message(ServerChannel::ServerMessages.id(), message);
|
||||||
@ -339,7 +339,7 @@ fn spawn_floor(mut commands: Commands) {
|
|||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
})
|
})
|
||||||
.insert_bundle(TransformBundle::from(Transform::from_xyz(0., 0., 0.)))
|
.insert_bundle(TransformBundle::from(Transform::from_xyz(-50., 0., 0.)))
|
||||||
.insert(RigidBody::Fixed)
|
.insert(RigidBody::Fixed)
|
||||||
.insert(Collider::cuboid(width / 2., height / 2.))
|
.insert(Collider::cuboid(width / 2., height / 2.))
|
||||||
.insert(ActiveEvents::COLLISION_EVENTS);
|
.insert(ActiveEvents::COLLISION_EVENTS);
|
||||||
|
@ -57,7 +57,7 @@ pub enum ServerChannel {
|
|||||||
pub enum ServerMessages {
|
pub enum ServerMessages {
|
||||||
PlayerCreate { entity: Entity, id: u64 },
|
PlayerCreate { entity: Entity, id: u64 },
|
||||||
PlayerRemove { id: u64 },
|
PlayerRemove { id: u64 },
|
||||||
SpawnProjectile { entity: Entity },
|
SpawnProjectile { entity: Entity, origin: Vec2 },
|
||||||
DespawnProjectile { entity: Entity },
|
DespawnProjectile { entity: Entity },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user