示例#1
0
文件: Movement.cs 项目: kuviman/Q
 public Prediction(Components.Position pos, Components.Movement mov)
 {
     this.pos = pos;
     this.mov = mov;
     a        = b = c = Vec3.Zero;
     d        = pos.Pos;
 }
示例#2
0
文件: Movement.cs 项目: kuviman/Q
            public void Update(Components.Position npos, Components.Movement nmov)
            {
                if (pos.Room != npos.Room)
                {
                    pos.Room = npos.Room;
                    pos.Rot  = npos.Rot;
                    pos.Pos  = npos.Pos;
                    mov.Vel  = nmov.Vel;
                    a        = b = c = Vec3.Zero;
                    d        = pos.Pos;
                    return;
                }
                pos.Rot = npos.Rot;

                k = 0;
                d = pos.Pos;
                c = mov.Vel * LAG;
                // a = pos - b - c - d
                // 3a + 2b + c = vel * LAG
                // 3pos - 3b - 3c - 3d + 2b + c = vel * LAG
                b = 3 * npos.Pos - 2 * c - 3 * d - nmov.Vel * LAG;
                a = npos.Pos - b - c - d;
            }