public float getShoulderZ()
    {
        GameObject       shoulder   = GameObject.Find("ShoulderRight");
        JointsProperties jpshoulder = shoulder.GetComponent <JointsProperties>();

        return(jpshoulder.position.z);
    }
    public bool checkCenter()
    {
        JointsProperties spine   = GameObject.Find("SpineBase").GetComponent <JointsProperties>();
        Text             display = GameObject.Find("Text 5").GetComponent <Text>();

        if (spine.position.x < -0.3)
        {
            display.text = "Move towards your right.";
            return(false);
        }
        else if (spine.position.x > 0.3)
        {
            display.text = "Move towards your left.";
            return(false);
        }
        else if (spine.position.z < 2.4)
        {
            display.text = "Move back";
            return(false);
        }
        else if (spine.position.z > 2.6)
        {
            display.text = "Come forward";
            return(false);
        }
        else
        {
            display.text = "";
            return(true);
        }
    }
Beispiel #3
0
    private void RefreshBodyObject(Kinect.Body body, GameObject bodyObject, Text text)
    {
        count++;
        Kinect.Joint   s  = body.Joints[Kinect.JointType.WristLeft];
        Kinect.Joint   t  = body.Joints[Kinect.JointType.WristRight];
        BodyProperties BP = bodyObject.GetComponent <BodyProperties>();

        //text.color = UnityEngine.Color.white;
        //text.text = BP.startGame.ToString();
        //text.text += "\n" + BP.InitializeObj.ToString();
        //text.text += "\n" + BP.countinst.ToString();
        //text.fontSize = 25;
        //text.text += "\n" + BP.leftarmLength;
        //text.text += "\n" + BP.rightarmLength;
        //text.text = Math.Round(BP.CalculateDistance(s, t), 2).ToString();
        //text.text += "\n"+Math.Round(BP.CalculateDistanceByFormula(s, t), 2).ToString();

        Kinect.Joint bodyJoint = body.Joints[Kinect.JointType.SpineBase];
        bodyObject.transform.position = GetVector3FromJoint(bodyJoint);


        for (Kinect.JointType jt = Kinect.JointType.SpineBase; jt <= Kinect.JointType.ThumbRight; jt++)
        {
            Kinect.Joint sourceJoint = body.Joints[jt];
            Kinect.Joint?targetJoint = null;

            if (_BoneMap.ContainsKey(jt))
            {
                targetJoint = body.Joints[_BoneMap[jt]];
            }
            Transform jointObj = bodyObject.transform.Find(jt.ToString());
            jointObj.position = GetVector3FromJoint(sourceJoint);
            if (jointObj.name.Contains("Head") && count % 7 == 0)
            {
                JointsProperties jp = jointObj.GetComponent <JointsProperties>();
                //Debug.Log(jointObj.name + ": (" + jp.position.x + "," + jp.position.y + "," + jp.position.z + ")");
            }
            GameObject       JointObject = jointObj.gameObject;
            JointsProperties joint       = JointObject.GetComponent <JointsProperties>();
            joint.position = jointObj.position;
            joint.UpdateDistanceFromGround();



            LineRenderer lr = jointObj.GetComponent <LineRenderer>();
            if (targetJoint.HasValue)
            {
                lr.SetPosition(0, jointObj.position);
                lr.SetPosition(1, GetVector3FromJoint(targetJoint.Value));
                lr.startColor = GetColorForState(sourceJoint.TrackingState);
                lr.endColor   = GetColorForState(targetJoint.Value.TrackingState);
            }
            else
            {
                lr.enabled = false;
            }
        }
    }
    private GameObject CreateBodyObject(ulong id)
    {
        GameObject body = new GameObject("Body:" + id);

        //body.transform.position = new Vector3(0.0f, 10.0f, 0.0f);

        for (Kinect.JointType jt = Kinect.JointType.SpineBase; jt <= Kinect.JointType.ThumbRight; jt++)
        {
            GameObject jointObj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            jointObj.name = "Skeleton" + jt.ToString();
            SphereCollider scj = jointObj.GetComponent <SphereCollider>();
            scj.isTrigger = true;

            if (jt == Kinect.JointType.HandLeft || jt == Kinect.JointType.HandRight)
            {
                scj.radius = 1.5f;
            }

            Rigidbody rbj = jointObj.AddComponent <Rigidbody>() as Rigidbody;
            rbj.useGravity = false;

            jointObj.AddComponent <colloideDetect>();
            JointsProperties joint = jointObj.AddComponent <JointsProperties>();
            joint.name  = jt.ToString();
            joint.floor = floorClipPlane;

            LineRenderer lr = jointObj.AddComponent <LineRenderer>();
            lr.positionCount = 2;
            lr.material      = pickup;
            lr.startWidth    = 0.05f;
            lr.endWidth      = 0.05f;

            jointObj.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
            jointObj.name             = "Skeleton" + jt.ToString();
            jointObj.transform.parent = body.transform;
        }
        body.transform.parent = transform;
        body.tag = "SkeletonBody";
        BodyProperties BP = body.AddComponent <BodyProperties>();

        BP.ParentCircle = startCircle;
        //BP.MJ = MJ;
        Rigidbody       rb = body.AddComponent <Rigidbody>();
        CapsuleCollider cc = body.AddComponent <CapsuleCollider>();

        cc.isTrigger       = true;
        cc.height          = 2.5f;
        cc.radius          = 0.1f;
        StartCircle.player = body;
        rb.useGravity      = false;

        return(body);
    }
    private void RefreshBodyObject(Kinect.Body body, GameObject bodyObject)
    {
        count++;
        Kinect.Joint   s  = body.Joints[Kinect.JointType.WristLeft];
        Kinect.Joint   t  = body.Joints[Kinect.JointType.WristRight];
        BodyProperties BP = bodyObject.GetComponent <BodyProperties>();

        Kinect.Joint bodyJoint = body.Joints[Kinect.JointType.SpineBase];
        bodyObject.transform.position = GetVector3FromJoint(bodyJoint);
        Kinect.Vector4 BodyOrientation = body.JointOrientations[Kinect.JointType.SpineBase].Orientation;
        bodyObject.transform.rotation = GetQuaterion(BodyOrientation);


        for (Kinect.JointType jt = Kinect.JointType.SpineBase; jt <= Kinect.JointType.ThumbRight; jt++)
        {
            Kinect.Joint sourceJoint = body.Joints[jt];
            Kinect.Joint?targetJoint = null;

            if (_BoneMap.ContainsKey(jt))
            {
                targetJoint = body.Joints[_BoneMap[jt]];
            }
            Transform jointObj = bodyObject.transform.Find("Skeleton" + jt.ToString());
            jointObj.position = GetVector3FromJoint(sourceJoint);
            if (jointObj.name.Contains("Head") && count % 7 == 0)
            {
                JointsProperties jp = jointObj.GetComponent <JointsProperties>();
                //Debug.Log(jointObj.name + ": (" + jp.position.x + "," + jp.position.y + "," + jp.position.z + ")");
            }
            GameObject       JointObject = jointObj.gameObject;
            JointsProperties joint       = JointObject.GetComponent <JointsProperties>();
            joint.position = jointObj.position;
            joint.UpdateDistanceFromGround();
            joint.TrackingState = sourceJoint.TrackingState;
            JointObject.GetComponent <Renderer>().material.color = GetColorForState(sourceJoint.TrackingState);



            LineRenderer lr = jointObj.GetComponent <LineRenderer>();
            if (targetJoint.HasValue)
            {
                lr.SetPosition(0, jointObj.position);
                lr.SetPosition(1, GetVector3FromJoint(targetJoint.Value));
                lr.startColor = GetColorForState(sourceJoint.TrackingState);
                lr.endColor   = GetColorForState(targetJoint.Value.TrackingState);
            }
            else
            {
                lr.enabled = false;
            }
        }
    }
    public Vector2 getShoulderPosition()
    {
        GameObject       shoulder   = GameObject.Find("ShoulderRight");
        JointsProperties jpshoulder = shoulder.GetComponent <JointsProperties>();
        GameObject       neck       = GameObject.Find("SpineShoulder");
        JointsProperties jpspine    = neck.GetComponent <JointsProperties>();
        Vector3          ans        = jpshoulder.position - jpspine.position;
        Vector2          answer;

        answer.x = ans.x;
        answer.y = ans.z;
        return(answer);
    }
Beispiel #7
0
 // Update is called once per frame
 void Update()
 {
     if (player != null && SecretData.FixedJoint != -1)
     {
         Kinect.JointType FixedJoint            = _JointMap[SecretData.FixedJoint];
         Transform        FixedJointT           = player.transform.Find("Skeleton" + FixedJoint.ToString());
         Transform        SpineBaseT            = player.transform.Find("Skeleton" + "SpineBase");
         Vector3          NewFixedJointPosition = FixedJointT.position;
         Vector3          NewSpineBasePosition  = SpineBaseT.position;
         Vector3          BufferPosition        = new Vector3(0.01f, 0.01f, 0.01f);
         JointsProperties jpf = FixedJointT.gameObject.GetComponent <JointsProperties>();
         JointsProperties jps = SpineBaseT.gameObject.GetComponent <JointsProperties>();
         TimeCount += Time.deltaTime;
         if (jpf.TrackingState == Kinect.TrackingState.Tracked && jps.TrackingState == Kinect.TrackingState.Tracked)
         {
             TimeCount = 0f;
             if (CanMove && CanStart)
             {
                 bool  SpineBaseChange  = isChangedPosition(NewSpineBasePosition, SpineBasePosition);
                 bool  FixedJointChange = isChangedPosition(NewFixedJointPosition, FixedJointPosition);
                 float xfactor          = 0.15f;
                 float yfactor          = 0.01f;
                 float zfactor          = 0.1f;
                 if (GD != null && (GD.gestureName == "rightlunges" || GD.gestureName == "leftlunges"))
                 {
                     xfactor = 0.2f;
                 }
                 if (!GD.gestureName.ToLower().Equals("none") && FixedJointChange)
                 {
                     Vector3 playerPosition    = player.transform.position;
                     Vector3 NewCirclePosition = new Vector3(playerPosition.x + xfactor, GroundPlane.position.y + yfactor, playerPosition.z + zfactor);
                     transform.position = NewCirclePosition;
                     transform.rotation = GetCircleRotation(player.transform.rotation);
                 }
             }
             else
             {
                 transform.position = InitialPosition;
                 transform.rotation = InitialRotation;
             }
             FixedJointPosition = NewFixedJointPosition;
             SpineBasePosition  = NewSpineBasePosition;
         }
     }
     else
     {
         FixedJointPosition = Vector3.zero;
         //LeftFootPosition = Vector3.zero;
         //RightFootPosition = Vector3.zero;
     }
 }
    public void FindLegHeightFromGround(string leg)
    {
        switch (leg)
        {
        case "left":
        case "Left":
        case "LEFT":
            GameObject       leftFoot = transform.Find("FootLeft").gameObject;
            JointsProperties LFJP     = leftFoot.GetComponent <JointsProperties>();
            leftFootHeight = leftFootHeight > (float)(LFJP.distanceFromGround) ? (float)LFJP.distanceFromGround : leftFootHeight;
            break;

        case "right":
        case "Right":
        case "RIGHT":
            GameObject       rightFoot = transform.Find("FootRight").gameObject;
            JointsProperties RFJP      = rightFoot.GetComponent <JointsProperties>();
            rightFootHeight = rightFootHeight > (float)(RFJP.distanceFromGround) ? (float)RFJP.distanceFromGround : rightFootHeight;
            break;
        }
    }
    public bool CheckLegAboveGround()
    {
        GameObject       leftFoot      = transform.Find("FootLeft").gameObject;
        JointsProperties LFJP          = leftFoot.GetComponent <JointsProperties>();
        float            leftLegHeight = (float)LFJP.distanceFromGround;

        GameObject       rightFoot      = transform.Find("FootRight").gameObject;
        JointsProperties RFJP           = rightFoot.GetComponent <JointsProperties>();
        float            rightLegHeight = (float)RFJP.distanceFromGround;

        float rightLegDiff = rightLegHeight - rightFootHeight;
        float leftLegDiff  = leftLegHeight - leftFootHeight;

        if (rightLegDiff >= 0.02f && leftLegDiff >= 0.02f)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
Beispiel #10
0
    public void CreateCoins()
    {
        double angle = 0;

        if (firstread)
        {
            GameObject       head          = transform.Find("Head").gameObject;
            GameObject       shoulderLeft  = transform.Find("ShoulderLeft").gameObject;
            GameObject       shoulderRight = transform.Find("ShoulderRight").gameObject;
            GameObject       foot          = transform.Find("FootLeft").gameObject;
            JointsProperties jphead        = head.GetComponent <JointsProperties>();
            JointsProperties jpshoulderl   = shoulderLeft.GetComponent <JointsProperties>();
            JointsProperties jpshoulderr   = shoulderRight.GetComponent <JointsProperties>();
            JointsProperties jpfoot        = foot.GetComponent <JointsProperties>();
            SD.realheight     = jphead.position.y;
            SD.realshoulder   = Vector3.Distance(jpshoulderl.position, jpshoulderr.position);
            SD.realhandlength = (rightarmLength + leftarmLength) / 2;
            SD.realfootlevel  = jpfoot.position.y;
            firstread         = false;
        }
        XmlDocument doc = new XmlDocument();

        doc.Load("C:\\Users\\rajan\\Desktop\\" + GD.gestureName + ".xml");
        foreach (XmlNode node in doc.DocumentElement)
        {
            string jointname = node.Attributes[0].InnerText;
            if (jointname == "HandLength")
            {
                SD.handlengthdelta = SD.realhandlength - float.Parse(node.ChildNodes[0].InnerText);
            }
            else if (jointname == "HeadPos")
            {
                SD.heightdelta = SD.realheight - float.Parse(node.ChildNodes[0].InnerText);
            }
            else if (jointname == "ShoulderWidth")
            {
                SD.shoulderdelta = (SD.realshoulder - float.Parse(node.FirstChild.InnerText)) / 2;
            }
            else if (jointname == "AngleAdjust")
            {
                SD.angleadjust = float.Parse(node.FirstChild.InnerText) - SD.realfootlevel;
            }
            else if (jointname == "TotalCollisions")
            {
                SD.totalcollisions = float.Parse(node.FirstChild.InnerText);
            }
            else if (jointname == "GestureType")
            {
                SD.gestureType = node.FirstChild.InnerText;
            }
            else if (jointname == "TotalFrames")
            {
                SD.totalFrames = Convert.ToInt32(node.FirstChild.InnerText);
            }
            else if (jointname != "ValidAngle")
            {
                if (jointname.Contains("Initial"))
                {
                    SD.totalInitial++;
                }
                float x, y, z;
                x = float.Parse(node.ChildNodes[0].InnerText);
                y = float.Parse(node.ChildNodes[1].InnerText) - SD.angleadjust;
                z = float.Parse(node.ChildNodes[2].InnerText);
                if (jointname.Contains("Hand"))
                {
                    angle = Convert.ToDouble(node.ChildNodes[3].InnerText);
                    if (jointname.Contains("Right"))
                    {
                        if (angle < 90)
                        {
                            y = y /*- SD.angleadjust*/ + SD.heightdelta - (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Cos(ConvertDegreeToRadian(angle)))));
                        }
                        else
                        {
                            y = y /*- SD.angleadjust*/ + SD.heightdelta + (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Cos(ConvertDegreeToRadian(angle)))));
                        }
                        x += SD.shoulderdelta + (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Sin(ConvertDegreeToRadian(angle)))));
                    }
                    else if (jointname.Contains("Left"))
                    {
                        if (angle < 90)
                        {
                            y = y /*- SD.angleadjust*/ + SD.heightdelta - (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Cos(ConvertDegreeToRadian(angle)))));
                        }
                        else
                        {
                            y = y /*- SD.angleadjust*/ + SD.heightdelta + (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Cos(ConvertDegreeToRadian(angle)))));
                        }
                        x = x - SD.shoulderdelta - (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Sin(ConvertDegreeToRadian(angle)))));
                    }
                }
                else if (jointname.Contains("Head"))
                {
                    y = y /*- SD.angleadjust*/ + SD.heightdelta;
                }
                else if (jointname.Contains("Foot"))
                {
                    /*y = y - SD.angleadjust;*/
                    if (jointname.Contains("Right"))
                    {
                        x += SD.shoulderdelta;
                    }
                    else if (jointname.Contains("Left"))
                    {
                        x -= SD.shoulderdelta;
                    }
                }
                else if (jointname.Contains("Wrist"))
                {
                    y = y + SD.heightdelta;
                    z = z + SD.handlengthdelta;
                    if (jointname.Contains("Right"))
                    {
                        x += SD.shoulderdelta;
                    }
                    else if (jointname.Contains("Left"))
                    {
                        x -= SD.shoulderdelta;
                    }
                }
                GameObject coin = GameObject.CreatePrimitive(PrimitiveType.Capsule);
                coin.transform.position   = new Vector3(x, y, z);
                coin.transform.localScale = new Vector3(0.175f, 0.15f, 0.06f);
                coin.transform.rotation   = Quaternion.AngleAxis(90, Vector3.right);
                coin.name = jointname;
                CapsuleCollider sc = coin.AddComponent <CapsuleCollider>();
                sc.isTrigger = true;
                sc.height    = 2f;
                colls.Add(coin);

                /*Rigidbody rb = coin.AddComponent<Rigidbody>();
                 * rb.useGravity = false;*/
                //coin.tag = jointname;
                SD.NoOfCoins++;
            }
        }
    }
    public void CreateCoins()
    {
        Debug.Log(GD.gestureName);
        double angle = 0;

        if (firstread)
        {
            GameObject       head          = transform.Find("SkeletonHead").gameObject;
            GameObject       shoulderLeft  = transform.Find("SkeletonShoulderLeft").gameObject;
            GameObject       shoulderRight = transform.Find("SkeletonShoulderRight").gameObject;
            GameObject       foot          = transform.Find("SkeletonFootLeft").gameObject;
            JointsProperties jphead        = head.GetComponent <JointsProperties>();
            JointsProperties jpshoulderl   = shoulderLeft.GetComponent <JointsProperties>();
            JointsProperties jpshoulderr   = shoulderRight.GetComponent <JointsProperties>();
            JointsProperties jpfoot        = foot.GetComponent <JointsProperties>();
            SD.realheight   = jphead.position.y;
            SD.realshoulder = Vector3.Distance(jpshoulderl.position, jpshoulderr.position);
            if (leftarmLength == 0f)
            {
                leftarmLength = FindHandLength("left");
            }
            if (rightarmLength == 0f)
            {
                rightarmLength = FindHandLength("Right");
            }
            SD.realhandlength = (rightarmLength + leftarmLength) / 2;
            SD.realfootlevel  = jpfoot.position.y;
            Debug.Log("RealHeight:" + SD.realheight);
            Debug.Log("RealShoulder:" + SD.realshoulder);
            Debug.Log("RealHandLength:" + SD.realhandlength);
            Debug.Log("RealFootLevel:" + SD.realfootlevel);
            firstread = false;
        }
        Vector3 CurrentStartCirclePosition = SC.GetPostion();

        SC.SetInitialPosistion();
        XmlDocument doc = new XmlDocument();

        doc.Load("C:\\Users\\rajan\\Desktop\\" + GD.gestureName + ".xml");
        foreach (XmlNode node in doc.DocumentElement)
        {
            string jointname = node.Attributes[0].InnerText;
            if (jointname == "HandLength")
            {
                SD.handlengthdelta = SD.realhandlength - float.Parse(node.ChildNodes[0].InnerText);
                Debug.Log("HandLengthde lta:" + SD.handlengthdelta);
            }
            else if (jointname == "FixedJoint")
            {
                SecretData.FixedJoint = int.Parse(node.ChildNodes[0].InnerText);
            }
            else if (jointname == "HeadPos")
            {
                SD.heightdelta = SD.realheight - float.Parse(node.ChildNodes[0].InnerText);
                Debug.Log("HeightDelta:" + SD.heightdelta);
            }
            else if (jointname == "ShoulderWidth")
            {
                SD.shoulderdelta = (SD.realshoulder - float.Parse(node.FirstChild.InnerText)) / 2;
                Debug.Log("ShoulderDelta:" + SD.shoulderdelta);
            }
            else if (jointname == "AngleAdjust")
            {
                SD.angleadjust = float.Parse(node.FirstChild.InnerText) - SD.realfootlevel;
                Debug.Log("AngleAdjust:" + SD.angleadjust);
            }
            else if (jointname == "TotalCollisions")
            {
                SD.totalcollisions = float.Parse(node.FirstChild.InnerText);
            }
            else if (jointname == "GestureType")
            {
                SD.gestureType = node.FirstChild.InnerText;
            }
            else if (jointname == "TotalFrames")
            {
                SD.totalFrames  = Convert.ToInt32(node.FirstChild.InnerText);
                GD.MaxFrameTime = (float)Convert.ToInt32(node.FirstChild.InnerText) / 30f;
                GD.MinFrameTime = GD.MaxFrameTime / 4;
            }
            else if (jointname != "ValidAngle")
            {
                if (jointname.Contains("Initial"))
                {
                    SD.totalInitial++;
                }
                float x, y, z;
                x = float.Parse(node.ChildNodes[0].InnerText);
                y = float.Parse(node.ChildNodes[1].InnerText) - SD.angleadjust;
                z = float.Parse(node.ChildNodes[2].InnerText);
                if (jointname.Contains("Hand"))
                {
                    angle = Convert.ToDouble(node.ChildNodes[3].InnerText);
                    if (jointname.Contains("Right"))
                    {
                        if (angle < 90)
                        {
                            y = y /*- SD.angleadjust*/ + SD.heightdelta - (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Cos(ConvertDegreeToRadian(angle)))));
                        }
                        else
                        {
                            y = y /*- SD.angleadjust*/ + SD.heightdelta + (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Cos(ConvertDegreeToRadian(angle)))));
                        }
                        x += SD.shoulderdelta + (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Sin(ConvertDegreeToRadian(angle)))));
                    }
                    else if (jointname.Contains("Left"))
                    {
                        if (angle < 90)
                        {
                            y = y /*- SD.angleadjust*/ + SD.heightdelta - (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Cos(ConvertDegreeToRadian(angle)))));
                        }
                        else
                        {
                            y = y /*- SD.angleadjust*/ + SD.heightdelta + (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Cos(ConvertDegreeToRadian(angle)))));
                        }
                        x = x - SD.shoulderdelta - (SD.handlengthdelta * Math.Abs(Convert.ToSingle(Math.Sin(ConvertDegreeToRadian(angle)))));
                    }
                }
                else if (jointname.Contains("Head"))
                {
                    y = y /*- SD.angleadjust*/ + SD.heightdelta;
                }
                else if (jointname.Contains("Foot"))
                {
                    /*y = y - SD.angleadjust;*/
                    if (jointname.Contains("Right"))
                    {
                        x += SD.shoulderdelta;
                    }
                    else if (jointname.Contains("Left"))
                    {
                        x -= SD.shoulderdelta;
                    }
                }
                else if (jointname.Contains("Wrist"))
                {
                    y = y + SD.heightdelta;
                    z = z + SD.handlengthdelta;
                    if (jointname.Contains("Right"))
                    {
                        x += SD.shoulderdelta;
                    }
                    else if (jointname.Contains("Left"))
                    {
                        x -= SD.shoulderdelta;
                    }
                }
                GameObject coin = GameObject.CreatePrimitive(PrimitiveType.Capsule);
                coin.transform.position   = new Vector3(x, y, z);
                coin.transform.localScale = new Vector3(0.175f, 0.4f, 0.06f);
                coin.transform.rotation   = Quaternion.AngleAxis(90, Vector3.right);
                coin.transform.parent     = ParentCircle.transform;
                coin.name = jointname;
                CapsuleCollider cc = coin.AddComponent <CapsuleCollider>();
                cc.isTrigger = true;
                cc.height    = 2.5f;
                colls.Add(coin);
                SD.NoOfCoins++;
            }
        }
        SC.setPosition(CurrentStartCirclePosition);
    }