Beispiel #1
0
        private void Constrain(IGameObject gameObject)
        {
            var position = gameObject.Position;

            if (position.X < _volume.MinX) { position.X = _volume.MaxX - (_volume.MinX - position.X) % _volume.Width; }
            if (position.X > _volume.MaxX) { position.X = _volume.MinX + (position.X - _volume.MaxX) % _volume.Width; }
            if (position.Y < _volume.MinY) { position.Y = _volume.MaxY - (_volume.MinY - position.Y) % _volume.Height; }
            if (position.Y > _volume.MaxY) { position.Y = _volume.MinY + (position.Y - _volume.MaxY) % _volume.Height; }

            if (position != gameObject.Position)
            {
                gameObject.Teleport(position);
            }
        }