Exemplo n.º 1
0
        //移动和地图限制
        void MapLimit()
        {
            Vector2 nowPos = mainship.GetPosition() + mainship.NowDirection * 5f;

            if (nowPos.X < BattleScene.LeftLimit)
            {
                CameraMoveDir = Vector2.Zero;
                bScene.Map.DisplayBoundaryWarn(mainship.GetPosition(),
                                               BoundaryType.Left);
            }
            else if (nowPos.X > BattleScene.RightLimit)
            {
                CameraMoveDir = Vector2.Zero;
                bScene.Map.DisplayBoundaryWarn(mainship.GetPosition(),
                                               BoundaryType.Right);
            }
            else if (nowPos.Y < BattleScene.UpLimit)
            {
                CameraMoveDir = Vector2.Zero;
                bScene.Map.DisplayBoundaryWarn(mainship.GetPosition(),
                                               BoundaryType.Up);
            }
            else if (nowPos.Y > BattleScene.DownLimit)
            {
                CameraMoveDir = Vector2.Zero;
                bScene.Map.DisplayBoundaryWarn(mainship.GetPosition(),
                                               BoundaryType.Down);
            }
            else
            {
                CameraMoveDir = mainship.NowDirection;
                mainship.SetPosition(mainship.GetPosition() +
                                     CameraMoveDir * CameraMoveSpeed);

                bScene.MoveCamera(CameraMoveDir * CameraMoveSpeed);
                bScene.Map.CancelBoundaryWarn();
                mainship.IsMoveNow = true;
            }
        }