示例#1
0
        public ShipSnapShotManager(Ship ship)
        {
            _snapShotLifetime = TimeSpan.FromMilliseconds(Game.Instance.Configuration.gameConfig.DRAW_INTERVAL * 1.5);

            _snapShotTail = new BoundsSnapShot
            {
                Position = ship.MovementController.Position,
                At = GameTime.Now,
                Next = null
            };
            _snapShotHead = new BoundsSnapShot
            {
                Position = ship.MovementController.Position,
                At = GameTime.Now,
                Next = _snapShotTail
            };

            _ship = ship;
            _bounds = new Rectangle(Convert.ToInt32(_ship.MovementController.Position.X), Convert.ToInt32(_ship.MovementController.Position.Y), _ship.Width(), _ship.Height());
            _updateLock = new object();
        }
        public ShipSnapShotManager(Ship ship)
        {
            _snapShotLifetime = TimeSpan.FromMilliseconds(Game.Instance.Configuration.gameConfig.DRAW_INTERVAL * 1.5);

            _snapShotTail = new BoundsSnapShot
            {
                Position = ship.MovementController.Position,
                At       = GameTime.Now,
                Next     = null
            };
            _snapShotHead = new BoundsSnapShot
            {
                Position = ship.MovementController.Position,
                At       = GameTime.Now,
                Next     = _snapShotTail
            };

            _ship       = ship;
            _bounds     = new Rectangle(Convert.ToInt32(_ship.MovementController.Position.X), Convert.ToInt32(_ship.MovementController.Position.Y), _ship.Width(), _ship.Height());
            _updateLock = new object();
        }
示例#3
0
        public void Update(GameTime gameTime)
        {
            lock (_updateLock)
            {
                // Remove old snapshots
                while ((GameTime.Now - _snapShotHead.At) > _snapShotLifetime && _snapShotHead.Next != null)
                {
                    _snapShotHead = _snapShotHead.Next;
                }

                _snapShotTail.Next = new BoundsSnapShot
                {
                    Position = _ship.MovementController.Position,
                    At = GameTime.Now,
                    Next = null
                };

                _snapShotTail = _snapShotTail.Next;

                _bounds.X = Convert.ToInt32(_snapShotHead.Position.X);
                _bounds.Y = Convert.ToInt32(_snapShotHead.Position.Y);
            }
        }
        public void Update(GameTime gameTime)
        {
            lock (_updateLock)
            {
                // Remove old snapshots
                while ((GameTime.Now - _snapShotHead.At) > _snapShotLifetime && _snapShotHead.Next != null)
                {
                    _snapShotHead = _snapShotHead.Next;
                }

                _snapShotTail.Next = new BoundsSnapShot
                {
                    Position = _ship.MovementController.Position,
                    At       = GameTime.Now,
                    Next     = null
                };

                _snapShotTail = _snapShotTail.Next;

                _bounds.X = Convert.ToInt32(_snapShotHead.Position.X);
                _bounds.Y = Convert.ToInt32(_snapShotHead.Position.Y);
            }
        }