Sunday, 9 October 2016

LevelSelectController

 //bg  
    public GameObject BackButton;
public GameObject LoadingChange;
    public float backButtonDisplacement;
   // public static float TopCloudHeight = 57.6f;

   // public float maxBg, minBg;
public float maxCamera = 0;
    public static float maxCam = 65.5f, minCam = 0; // Camera 72 old

    // StarCounter
   // public static bool FinishedSetup;
 
   

 

  //  public static int LastVisit = -1;
   // public static Vector3 LastVisitLoc;

    //bool FinishedPositioning = false;

    public RectTransform MapCanvas;

    // Use this for initialization
    void Awake()
    {
maxCam = maxCamera;

        // calculate scale
        float screenRate = (float)Screen.height / Screen.width;
        float min = 1.779f, max = 1.333f;

        float additionScale = ((screenRate - max) / (min - max)) * 0.3f;

        MapCanvas.localScale = new Vector3(1.3f - additionScale, 1, 1);

      //  FinishedPositioning = false;
     
    }

    // Update is called once per frame
    void FixedUpdate()
    {

       
                UpdateTouchInput();
        }


    #region Dragging
    Vector3 MouseLastPosition;
    float CamStartPosY, MouseStartPosY;

    void UpdateTouchInput()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Vector3 pos = Input.mousePosition;

            TouchBegan(pos);
            MouseLastPosition = pos;
            return;
        }
        else if (Input.GetMouseButton(0))
        {
            Vector3 pos = Input.mousePosition;

            if (MouseLastPosition != pos)
            {
                TouchMoved(pos);
                MouseLastPosition = pos;
            }
            return;
        }
        else if (Input.GetMouseButtonUp(0))
        {
            Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            TouchEnded(pos);
            return;
        }

        UpdateCamMovement();

        int i = 0;
        while (i < Input.touchCount)
        {
            if (Input.GetTouch(i).phase == TouchPhase.Began)
            {
                Vector3 pos = Input.GetTouch(i).position;
                TouchBegan(pos);
                return;
            }
            if (Input.GetTouch(i).phase == TouchPhase.Moved)
            {
                Vector3 pos = Input.GetTouch(i).position;
                TouchMoved(pos);
                return;
            }
            if (Input.GetTouch(i).phase == TouchPhase.Ended)
            {
                Vector3 pos = Camera.main.ScreenToWorldPoint(Input.GetTouch(i).position);
                TouchEnded(pos);
                return;
            }
            if (Input.GetTouch(i).phase == TouchPhase.Canceled)
            {
                Vector3 pos = Camera.main.ScreenToWorldPoint(Input.GetTouch(i).position);
                TouchCanceled(pos);
                return;
            }
            ++i;
        }
    }

    float timeDelta;
    float velocity;
    float targetPositionY;
    bool isSwiping = false;
    void UpdateCamMovement()
    {
        if (!isSwiping)
        {
            float moveY = velocity * 0.9f;
            float newposy = transform.position.y + moveY;
            velocity = moveY;

            if (newposy < minCam)
            {
                newposy = minCam;
            }
            else if (newposy > maxCam)
            {
                newposy = maxCam;
            }

            transform.position = new Vector3(transform.position.x, newposy, transform.position.z);
            BackButton.transform.position = new Vector3(BackButton.transform.position.x, transform.position.y + backButtonDisplacement, BackButton.transform.position.z);
LoadingChange.transform.position = new Vector3(LoadingChange.transform.position.x, transform.position.y + backButtonDisplacement -1, LoadingChange.transform.position.z);
//
// SocialButton.transform.position = new Vector3(SocialButton.transform.position.x, transform.position.y + SocialButtonDisplacement, SocialButton.transform.position.z);

         //   float newBgRate = (newposy - minCam) / (maxCam - minCam);
//            BackgroundContainer.transform.position = new Vector3(BackgroundContainer.transform.position.x, newposy + (maxBg - minBg) * newBgRate, BackgroundContainer.transform.position.z);

        }
    }

 

    // Handle TouchEvent
    void TouchBegan(Vector3 touch)
    {
        MouseStartPosY = touch.y;
        CamStartPosY = transform.position.y;
        isSwiping = true;
    }

    void TouchMoved(Vector3 touch)
    {
        float newposy = CamStartPosY - (touch.y - MouseStartPosY) / Screen.height * 10;
        if (newposy < minCam)
        {
            newposy = minCam;
        }
        else if (newposy > maxCam)
        {
            newposy = maxCam;
        }

        transform.position = new Vector3(transform.position.x, newposy, transform.position.z);
        BackButton.transform.position = new Vector3(BackButton.transform.position.x, transform.position.y + backButtonDisplacement, BackButton.transform.position.z);
// SocialButton.transform.position = new Vector3(SocialButton.transform.position.x, transform.position.y + SocialButtonDisplacement, SocialButton.transform.position.z);

//        float newBgRate = (newposy - minCam) / (maxCam - minCam);
       // BackgroundContainer.transform.position = new Vector3(BackgroundContainer.transform.position.x, newposy + (maxBg - minBg) * newBgRate, BackgroundContainer.transform.position.z);


    }

    void TouchEnded(Vector3 touch)
    {
        isSwiping = false;

        if (Mathf.Abs(transform.position.y - CamStartPosY) > 1)
            velocity = (transform.position.y - CamStartPosY > 0) ? 0.2f : -0.2f;
        else
            velocity = 0;
    }

    void TouchCanceled(Vector3 touch)
    {

    }
    #endregion

No comments:

Post a Comment