2017-10-07 6 views
1

を使って斜めの動きを止め、基本的に何が起こることです:私はボールをスワイプ方向を示し、ボールは画面の上から落ちる。私はボールを左右に動かすと左右に動きますが、下方向の動きのためにやはり少し落ちます - これをどうやって変更しますか?私のゲームはここで2DUnityは、私は彼らが左または右にスワイプする際に斜めに移動するから、私のボールオブジェクトを停止する方法を理解しようとしているトラブルのトンを抱えているtransform.position方法

であるあなたが運動のために

//Variables 
public float ballSpeed = 10; //This will handle our Balls left and Right movement when swiped 
public float fallSpeed = 2; //This will handle the speed at which our ball falls 
[HideInInspector] 
public bool hitWall = false; //Check if our ball has collided with a wall 
public bool moveRight, moveLeft; 

public RoundHandler roundHandler; 


private void OnEnable() 
{ 
    //Get our Components 
    roundHandler = FindObjectOfType<RoundHandler>(); 
} 

#region functions 

void checkWhereToMove() 
{ 
    if (moveLeft == true) 
    { 
     transform.position -= transform.right * Time.deltaTime * ballSpeed; 

    } 

    if (moveRight == true) 
    { 
     transform.position += transform.right * Time.deltaTime * ballSpeed; 

    } 
} 

public void moveDown() { 

    //Set our Fall Speed modified by our Current rounds 
    fallSpeed = roundHandler.ballFallSpeed; 

    if (hitWall != true) { 
     //Check if we arnt moving left or Right so that we can move down 
     if (moveLeft == false || moveRight == false) 
     { 
      //Move our Ball down 
      transform.position -= transform.up * Time.deltaTime * fallSpeed; 
      //Get our movement input 
      checkWhereToMove(); 
     }  
    } 
} 
#endregion 

private void FixedUpdate() 
{ 
    moveDown(); 
} 
+0

私は私はあなたがボールは、それが下向き秋だ続行する前に、左または右に移動することを理解と思いますか?そうですね。 | _ | moveRight/Leftはどのようにtrueに設定されていますか?ボールド内でスワイプの方向でアップデートが検出されましたか?あなたはどうやってそれらを偽にしていますか? – mushcraft

答えて

1
  1. テストを必要とする必要があるすべてのコードは、両方の方向が間違っているかどうかをチェックする必要があります。

  2. checkWhereToMoveは()間違った場所にあります。

  3. ダウンした後、両方向をfalseにリセットする必要があります。

 

    public void moveDown() { 
     //Set our Fall Speed modified by our Current rounds 
     fallSpeed = roundHandler.ballFallSpeed; 

     //Get our movement input 
     checkWhereToMove(); 

     if (hitWall != true) { 
      //Check if we arnt moving left or Right so that we can move down 

      if (moveLeft == false && moveRight == false) { 
       //Move our Ball down 
       transform.position -= transform.up * Time.deltaTime * fallSpeed; 

       //Reset left and right movement 
       moveLeft = false; 
       moveRight = false; 
      } 
     } 
    } 

関連する問題