Exemplo n.º 1
0
    public void HandleTouchInput()
    {
        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);



            if (touch.phase == TouchPhase.Began)
            {
                CheckIfTouchHitPlayerBall(touch);
            }

            if (currentBall != null)
            {
                StartArea startArea = MatchManager.Instance.GetCurrentPlayer().startArea;
                touchInSpawnPlane = MapScreenTouchToWorld(touch, startArea.transform.position);
                touchWorldTravel  = Vector3.Distance(startArea.transform.position, touchInSpawnPlane);
                var     collider           = startArea.GetComponentInChildren <Collider>();
                Vector3 closestPointToArea = collider.ClosestPointOnBounds(touchInSpawnPlane);
                currentBall.transform.position = closestPointToArea + new Vector3(0f, .5f, 0f);
            }

            if (touch.phase == TouchPhase.Ended && currentBall != null)
            {
                currentBall.SetStartPosition();
                currentBall = null;
            }
        }
    }
Exemplo n.º 2
0
    // run
    public void RunTrial()
    {
        // initialization
        // reference to ExperimentManager
        experimentManagerObj = GameObject.Find("Experiment Manager");
        experimentManager    = experimentManagerObj.GetComponent <ExperimentManager>();
        // reference to TiltManager
        tiltManagerObj = GameObject.Find("Tilt Manager");
        tiltManager    = tiltManagerObj.GetComponent <TiltManager>();
        // prepare start area
        startAreaObj = (GameObject)Instantiate(startAreaPrefab, Vector3.zero, Quaternion.identity);
        startArea    = startAreaObj.GetComponent <StartArea>();
        startArea.SetStartAreaParameters(experimentalParameters); // 初期位置のサイズを設定・変更
        // prepare target
        targetObj = (GameObject)Instantiate(targetPrefab, Vector3.zero, Quaternion.identity);
        target    = targetObj.GetComponent <Target>();
        target.Initialize(experimentalParameters); // 初期位置のサイズを設定・変更

        // set cursor parameter in 1st trial
        if (experimentManager.iTrial == 1)
        {
            cursorObj = GameObject.Find("Cursor");
            cursor    = cursorObj.GetComponent <Cursor>();
            cursor.SetCursorParameters(experimentalParameters);
        }

        // activate start area
        startAreaObj.SetActive(true);

        // next state
        state = stateStartAreaDisplayed;
    }
Exemplo n.º 3
0
 private void SpawnStartArea()
 {
     StartArea = Instantiate(StartArea, new Vector3(-30, 0, -15), new Quaternion(0, 0, 0, 0));
     //voegt startarea floors toe aan floorlist
     foreach (Floor floor in StartArea.GetComponentsInChildren <Floor>())
     {
         GameState.Instance.Player.FloorsList.Add(floor);
     }
 }
Exemplo n.º 4
0
 public void SetPlayerInfo(PlayerInfo playerInfo, StartArea startArea, PlayerScore playerScore)
 {
     this.playerInfo  = playerInfo;
     this.startArea   = startArea;
     this.playerScore = playerScore;
     this.playerScore.SetPlayerName(playerInfo.playerName);
     balls      = CreatePlayerBalls(playerInfo);
     playerName = playerInfo.playerName;
     color      = playerInfo.playerColor;
     this.playerScore.SetColor(color + new Color(0f, 0f, 0f, 0.3f));
 }
        private static void MovePlayerToSceneStartArea(GameObject player, string levelName)
        {
            GameObject levelContainer = GameObject.Find(levelName + "Container");
            StartArea  startArea      = levelContainer.GetComponentInChildren <IBoundary>() as StartArea;

            if (startArea != null)
            {
                print("startArea found!");
                Collider2D startAreaCollider2D = startArea.GetComponent <Collider2D>();
                player.transform.position = startAreaCollider2D.bounds.center;
            }
        }
        public void HandleWithTouch(Touch touch)
        {
            var position = touch.GetPosition(0);

            if (StartArea.Contains(position) && touch.GetState(0) == State.Pressing)
            {
                StartDragPosition = position;
            }
            else if (StartDragPosition != Vector2D.Unused && touch.GetState(0) != State.Released)
            {
                InvokeIfMovedFarEnough(position);
            }
            else
            {
                StartDragPosition = Vector2D.Unused;
            }
        }
Exemplo n.º 7
0
        public WinAnimation(Window window, Area target, int duration, Curve curve) : base(duration, null, null, window)
        {
            if (Window.IsNullOrNone(window))
            {
                throw new ArgumentException("Given window was null or none");
            }
            if (curve == null)
            {
                throw new ArgumentNullException("Given curve was null");
            }

            Window    = window;
            StartArea = window.Area;
            EndArea   = target;

            AnimationCallback = t => window.Move(StartArea.Lerp(target, curve.Invoke(t)));
            CancelCallback    = () => window.Move(StartArea);
        }
 public void HandleWithMouse(Mouse mouse)
 {
     if (StartArea.Contains(mouse.Position) && mouse.GetButtonState(Button) == State.Pressing)
     {
         StartDragPosition = mouse.Position;
     }
     else if (StartDragPosition != Vector2D.Unused &&
              mouse.GetButtonState(Button) != State.Released)
     {
         if (StartDragPosition.DistanceTo(mouse.Position) > PositionEpsilon)
         {
             Invoke();
         }
         else
         {
             StartDragPosition = Vector2D.Unused;
         }
     }
 }
Exemplo n.º 9
0
 // Use this for initialization
 void Start()
 {
     scriptStart = GameObject.FindGameObjectWithTag("StartArea").GetComponent <StartArea>();
 }
Exemplo n.º 10
0
 public void SetStartArea(StartArea startArea)
 {
     this.startArea = startArea;
 }