Пример #1
0
        public void SecondWarpPhase()
        {
            if (!warping)
            {
                return;
            }

            //move each player to warp dest, and begin playing exit pipe animation.
            foreach (IPlayer pl in players)
            {
                if (pl != null)
                {
                    int offsetX = Zero, offsetY = Zero;

                    if (warpDestPipeFacing == Direction.Down)
                    {
                        offsetY = -pl.Bounds.Height;
                    }
                    else if (warpDestPipeFacing == Direction.Right)
                    {
                        offsetX = -pl.Bounds.Width;
                    }

                    pl.SetPosition(warpDestX + offsetX, warpDestY + offsetY);
                    pl.BeginWarpAnimation(warpDestPipeFacing, false);
                }
            }

            //Force main camera to the necessary view
            if (mainCamera != null)
            {
                mainCamera.ForcePosition(warpDestCamPosX, warpDestCamPosY);
            }
        }