예제 #1
0
    //returns false if no free position was found
    public static bool findNewFreePosition(float width, float height, out Vector2 position)
    {
        var minPos = BoundsManager.getInternalMinPos();
        var maxPos = BoundsManager.getInternalMaxPos();


        for (int i = 0; i < maxNumberOfSpawnTries; ++i)
        {
            float  x        = Random.Range(minPos.x + width / 2, maxPos.x - width / 2);
            float  y        = Random.Range(minPos.y + height / 2, maxPos.y - height / 2);
            Bounds bounds   = new Bounds(new Vector3(x, y, -1), new Vector3(width, height, 1));
            bool   collided = false;
            foreach (var enemy in enemies)
            {
                if (enemy.wouldCollide(bounds))
                {
                    collided = true;
                    break;
                }
            }

            if (collided || PlayerScript.instance.wouldCollide(bounds))
            {
                continue;
            }

            position = new Vector2(x, y);
            return(true);
        }
        position = new Vector2(0, 0);
        return(false);
    }
예제 #2
0
    //Vector3 posOnScreen;

    private void Start()
    {
        cameraScroller = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <CameraScroll>();
        gm             = GameObject.FindGameObjectWithTag("GameController").GetComponent <GameManagerScript>();
        rb             = GetComponent <Rigidbody>();
        bounds         = GetComponent <BoundsManager>();
    }
예제 #3
0
    private void Initialize()
    {
        calcInput        = connectedMenus.calcInput;
        boundsManager    = connectedMenus.boundsManager;
        pieceWiseControl = connectedMenus.pieceWiseControl;
        boundsManager    = connectedMenus.boundsManager;
        saveLoadMenu     = connectedMenus.saveLoadMenu;

        if (connectedMenus.boundsManager != null)
        {
            connectedMenus.boundsManager.Initialize(this);
        }
        connectedMenus.calcInput.Initialize(this);
        //tier 3
        connectedMenus.outputMenu.Initialize(this);

        //Req: calcInput
        connectedMenus.pieceWiseControl.Initialize(this);
        //Req: calcInput
        calcInput.ChangeOutput(expressionSet.expressions[X]);
        //Req: calcInput
        connectedMenus.presetMenu.Initialize(this);

        connectedMenus.saveLoadMenu.Initialize(this);

        if (connectedMenus.particleAnimationSettings != null)
        {
            connectedMenus.particleAnimationSettings.Initialize(this);
        }
    }
예제 #4
0
    public void Initialize()
    {
        if (Instance == null)
        {
            Instance = this;
        }
        calcInput        = connectedMenus.calcInput;
        boundsManager    = connectedMenus.boundsManager;
        pieceWiseControl = connectedMenus.pieceWiseControl;
        boundsManager    = connectedMenus.boundsManager;
        saveLoadMenu     = connectedMenus.saveLoadMenu;
        tournamentMenu   = connectedMenus.tournamentMenu;
        submissionsMenu  = connectedMenus.submissionsMenu;

        if (connectedMenus.boundsManager != null)
        {
            connectedMenus.boundsManager.Initialize(this);
        }
        connectedMenus.calcInput.Initialize(this);
        //tier 3
        connectedMenus.outputMenu.Initialize(this);

        //Req: calcInput
        connectedMenus.pieceWiseControl.Initialize(this);
        //Req: calcInput
        calcInput.ChangeOutput(expressionSet.expressions["X"]);
        //Req: calcInput
        connectedMenus.presetMenu.Initialize(this);

        connectedMenus.saveLoadMenu.Initialize(this);

        if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name.Equals("3 - FreeParametrization"))
        {
            if (connectedMenus.tournamentMenu != null)
            {
                connectedMenus.tournamentMenu.Initialize(this);
            }

            if (connectedMenus.submissionsMenu != null)
            {
                connectedMenus.submissionsMenu.Initialize(this);
            }

            if (connectedMenus.mySubmissionsMenu != null)
            {
                connectedMenus.mySubmissionsMenu.Initialize(this);
            }
        }

        if (connectedMenus.particleAnimationSettings != null)
        {
            connectedMenus.particleAnimationSettings.Initialize(this);
        }
    }
예제 #5
0
 internal KeyboardInputResponder(BoundsManager boundsManager)
 {
     this.boundsManager = boundsManager;
 }
예제 #6
0
 private void Start()
 {
     gm     = GameObject.FindGameObjectWithTag("GameController").GetComponent <GameManagerScript>();
     bounds = GetComponent <BoundsManager>();
 }
    private void Update()
    {
        //Debug.Log(BoundsManager.blockTop);
        if (Input.touchCount > 0)
        {
            Touch   touch         = Input.GetTouch(0);
            Vector2 touchPosition = Camera.main.ScreenToWorldPoint(touch.position);

            if (touch.phase == TouchPhase.Began)
            {
                startPosition = touchPosition;
                lastPosition  = touchPosition;

                startedPosition   = touch.position;
                lastedPosition    = touch.position;
                trueStartPosition = touch.position;
            }
            //me.position = new Vector3(menus[activeMenu - 1].transform.position.x + (startPosition.x - touchPosition.x), me.position.y, me.position.z);
            else if (touch.phase == TouchPhase.Moved && canWeSlide && !MainManager.movingLocked)
            {
                //GameObject.Find("Text").GetComponent<UnityEngine.UI.Text>().text
                //    = "(" + (menus[0].transform.position.x).ToString() + ") " +
                //    "(" + (menus[1].transform.position.x).ToString() + ")";

                if (!scrollStarted && Mathf.Abs(startedPosition.x - touch.position.x) > (Screen.width / 7))
                {
                    moveStarted = true;
                }

                if (!moveStarted && Mathf.Abs(startedPosition.y - touch.position.y) > (Screen.height / 30))
                {
                    scrollStarted = true;
                }

                if ((moveStarted && lastedPosition.x - touch.position.x > (Screen.width / 100) && (activeMenu != 5 || startedPosition.x - touch.position.x < 0)) ||
                    (moveStarted && touch.position.x - lastedPosition.x > (Screen.width / 100) && (activeMenu != 1 || touch.position.x - startedPosition.x < 0)) &&
                    canWeSlide)
                {
                    lastedPosition = new Vector2(touch.position.x, lastedPosition.y);

                    me.position   = new Vector3(menus[activeMenu - 1].transform.position.x + (startedPosition.x - lastedPosition.x) * 0.05f / (Screen.width / 100), me.position.y, me.position.z);
                    scrollAllowed = false;
                }
                else if (scrollStarted)
                {
                    //if (startPosition.y > touchPosition.y && height / 2f + transform.position.y >= borders[0].position.y + borders[0].lossyScale.y / 2)
                    //{

                    //}
                    //if ((startPosition.y > touch.position.y && height/2f+ transform.position.y <= borders[0].position.y + borders[0].lossyScale.y/2 ) || startPosition.y < touch.position.y
                    //*|| (startPosition.y > touch.position.y && transform.position.y - height / 2f  >= borders[0].position.y - borders[0].lossyScale.y / 2)*/)
                    if (!((BoundsManager.BlockTop() && startPosition.y > touchPosition.y) || (BoundsManager.BlockBottom() && startPosition.y < touchPosition.y)))
                    {
                        Transform activedMenu = menus[activeMenu - 1].transform;
                        float     newY        = activedMenu.position.y - (lastPosition.y - touchPosition.y);
                        activedMenu.position = new Vector3(activedMenu.position.x, newY, activedMenu.position.z);

                        lastPosition = touchPosition;
                    }
                }
            }
            else if (touch.phase == TouchPhase.Ended && canWeSlide && !MainManager.movingLocked)
            {
                //GameObject.Find("Text").GetComponent<UnityEngine.UI.Text>().text
                //    = "[" + (startedPosition.x - touch.position.x).ToString() + "] " +
                //    "[" + (touch.position.x).ToString() + "]";

                if (startedPosition.x - touch.position.x > (Screen.width * 0.25f) && activeMenu != 5 && moveStarted)
                {
                    //GameObject.Find("Guzik1").GetComponent<SpriteRenderer>().color = Color.magenta;
                    SlideTo(activeMenu + 1);
                }
                else if (touch.position.x - startedPosition.x > (Screen.width * 0.25f) && activeMenu != 1 && moveStarted)
                {
                    SlideTo(activeMenu - 1);
                }
                else
                {
                    bool check = true;

                    if (!moveStarted && !scrollStarted)
                    {
                        Vector2 touchPosition2 = Camera.main.ScreenToWorldPoint(touch.position);
                        for (int i = 0; i < 5; i++)
                        {
                            if (Physics2D.OverlapPoint(touchPosition2) == guziory[i])
                            {
                                SlideTo(i + 1);
                                check = false;
                                break;
                            }
                        }
                    }


                    if (check == true)
                    {
                        SlideTo(activeMenu);
                    }
                }

                moveStarted   = false;
                scrollStarted = false;

                scrollAllowed = true;
            }
        }
    }
예제 #8
0
 private void Awake()
 {
     instance = this;
 }