- Home /
Question by
aleem.razzaq09 · Jan 07, 2014 at 05:40 AM ·
2dunity4.3
How to move ball as fast as it pulled back for 2D game in Unity 4.3
Hi, I am working on 2D game development in Unity 4.3. I am making Ball Popper type game, so user pulled back the ball and when he/she release it, it goes to as fast as it pulled back. So I want to get experienced developer suggestion here, how can I write smart code to accomplish this task. I also attached following code with this post. Kindly look into this and suggest me better approach.
if(Input.GetTouch(0).phase == TouchPhase.Began) {
RaycastHit hit;
Vector3 v3;
Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
if(Physics.Raycast(ray,out hit) && (hit.collider.tag == "Drag"))
{
Debug.Log("Object hit with Dragable child object...");
dragging = true;
}
}
if(Input.touchCount>0 && Input.GetTouch(0).phase == TouchPhase.Moved && dragging)
{
Debug.Log("Move object.........");
collider2D.sharedMaterial.bounciness = 0.9f;
collider2D.enabled = false;
collider2D.enabled = true;
Vector2 touchdeltaposition = Input.GetTouch(0).deltaPosition;
anglex = (float) (touchdeltaposition.x * Time.deltaTime*speed);
angley = (float) (touchdeltaposition.y * Time.deltaTime*speed);
elevationAngle = new Vector3(anglex,angley,0);
Vector3 elevation = Quaternion.Euler(elevationAngle)*transform.forward;
rigidbody2D.AddForce(elevation);
rigidbody2D.velocity= new Vector2(anglex,angley);
}
if(Input.GetTouch(0).phase == TouchPhase.Ended){
dragging = false;
}
This code move ball when user swipe onto ball, but I just want to do this when user pulled back this ball. Thanks in advance...
Comment
remember the position when the ball is pressed, then on release set the velocity of the ball to the remembered one $$anonymous$$us it's current one and multiply that by a constant