@@ -12,6 +12,8 @@ public class SceneGame : AScene
1212 public Dictionary < byte , OtherPlayer > Players ;
1313 public Dictionary < ushort , Enemy > Enemies ;
1414 public ClientPlayer Player { get ; set ; }
15+
16+ public PrevCurQueue < Dictionary < ushort , DataEnemy > > EnemyTransformQueue { get ; set ; }
1517 private PrevCurQueue < Dictionary < byte , DataEntityTransform > > PlayerTransformQueue { get ; set ; }
1618
1719 private List < Sprite > Bullets = new List < Sprite > ( ) ;
@@ -28,6 +30,7 @@ public override void _Ready()
2830
2931 AddChild ( Player ) ;
3032 PlayerTransformQueue = new PrevCurQueue < Dictionary < byte , DataEntityTransform > > ( ServerIntervals . PlayerTransforms ) ;
33+ EnemyTransformQueue = new PrevCurQueue < Dictionary < ushort , DataEnemy > > ( ServerIntervals . PlayerTransforms ) ;
3134
3235 var bullet = Prefabs . Bullet . Instance < Sprite > ( ) ;
3336 Bullets . Add ( bullet ) ;
@@ -53,10 +56,14 @@ public override void _PhysicsProcess(float delta)
5356 bullet . Position += new Vector2 ( 0 , - 1f ) ;
5457
5558 PlayerTransformQueue . UpdateProgress ( delta ) ;
59+ EnemyTransformQueue . UpdateProgress ( delta ) ;
5660
5761 if ( PlayerTransformQueue . NotReady )
5862 return ;
5963
64+ if ( EnemyTransformQueue . NotReady )
65+ return ;
66+
6067 foreach ( var pair in PlayerTransformQueue . Current )
6168 {
6269 if ( ! Players . ContainsKey ( pair . Key ) ) // TODO: Find more optimal approach for checking this
@@ -73,6 +80,16 @@ public override void _PhysicsProcess(float delta)
7380 player . Position = Utils . Lerp ( prev . Position , cur . Position , PlayerTransformQueue . Progress ) ;
7481 player . PlayerSprite . Rotation = Utils . LerpAngle ( player . PlayerSprite . Rotation , cur . Rotation , 0.05f ) ;
7582 }
83+
84+ foreach ( var pair in EnemyTransformQueue . Current )
85+ {
86+ var enemy = Enemies [ pair . Key ] ;
87+
88+ var prev = EnemyTransformQueue . Previous [ pair . Key ] ;
89+ var cur = pair . Value ;
90+
91+ enemy . Position = Utils . Lerp ( prev . Position , cur . Position , EnemyTransformQueue . Progress ) ;
92+ }
7693 }
7794
7895 public override void _Input ( InputEvent @event )
0 commit comments