Пример #1
0
    // Update is called once per frame
    void Update()
    {
        var rocketPosition = rocket.transform.position;
        int minDistance    = 1;

        if (VArithmetics.GetDistance(transform.position, rocketPosition) > minDistance)
        {
            transform.Translate(VArithmetics.GetVelocity(transform.position, rocket.transform.position, 1));
        }
        Debug.Log(VArithmetics.GetDistance(transform.position, rocket.transform.position));
    }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        //Definierar en vektor v som indikerar hur mycket och i vilken riktning
        //raketen ska röra på sej per frame. Om ingen knapp trycks ner sätter vi både x och y
        //i vektorn att var 0, dvs. raketen står stilla
        Vector2 v = new Vector2(0, 0);


        //Om högerpil på tangentbordet är intryckt...
        if (Input.GetKey(KeyCode.RightArrow) == true)
        {
            //...vill vi för varje frame öka på x-koordinaten med 0.05
            //v = new Vector2(0.05f, v.y);
            v += rightforce;
        }

        //Om vänsterpil på tangentbordet är intryckt..
        if (Input.GetKey(KeyCode.LeftArrow) == true)
        {
            //...vill vi minska på x-koordinaten med 0.05
            //v = new Vector2(-0.05f, v.y);
            v += leftforce;
        }

        //Om uppåtpil på tangentbordet är intryckt..
        if (Input.GetKey(KeyCode.UpArrow) == true)
        {
            //...vill vi öka på y-koordinaten med 0.05
            //v = new Vector2(v.x, 0.05f);
            v += upforce;
        }

        //Om neråtpil på tangentbordet är intryckt..
        if (Input.GetKey(KeyCode.DownArrow) == true)
        {
            //...vill vi minska på y-koordinaten med 0.05
            v = new Vector2(v.x, -0.05f);
        }

        //Adderar positionsvektorn med vektorn v. Nya positionsvektorn blir då
        //resultanten av vektoradditionen mellan transform.position och v
        if (VArithmetics.GetDistance(transform.position, asteroid.transform.position) > 1)
        {
            Vector2 airResistance = -v * 0.01f;

            v += airResistance;
            v += gravity;
            transform.Translate(v);
        }
    }
Пример #3
0
    public void move(GameObject obj, Counters ast)
    {
        if (ast.collisionBool)
        {
            obj.transform.Translate(VArithmetics.GetVelocity(obj.transform.position, ast.collisionTemp, astspeed, ast));
        }
        else if (!ast.collisionBool)
        {
            obj.transform.Translate(VArithmetics.GetVelocity(rocketShip.transform.position, obj.transform.position, astspeed, ast));
        }

        //stores new position
        ast.previousFrame = obj.transform.position;
        ast.objectTemp    = obj.transform.position;
    }
Пример #4
0
    public void detectCollision(Counters ast)
    {
        // temporary Vector2 variables
        Vector2 ast1Vec = asteroid1.transform.position;
        Vector2 ast2Vec = asteroid2.transform.position;
        Vector2 ast3Vec = asteroid3.transform.position;
        Vector2 ast4Vec = asteroid4.transform.position;

        //tests distance between asteroid and rocket
        if (VArithmetics.GetDistance(rocketShip.transform.position, ast.objectTemp) <= 0.75f)
        {
            collisionFunction(ast);
            ast.collisionTemp = rocketShip.transform.position;
        }

        //test distance between asteroids
        if (ast.objectTemp != ast1Vec && VArithmetics.GetDistance(ast.objectTemp, ast1Vec) < astDistVal)
        {
            collisionFunction(ast);
            ast.collisionTemp = ast1Vec;
        }
        if (ast.objectTemp != ast2Vec && VArithmetics.GetDistance(ast.objectTemp, ast2Vec) < astDistVal)
        {
            collisionFunction(ast);
            ast.collisionTemp = ast2Vec;
        }
        if (ast.objectTemp != ast3Vec && VArithmetics.GetDistance(ast.objectTemp, ast3Vec) < astDistVal)
        {
            collisionFunction(ast);
            ast.collisionTemp = ast3Vec;
        }
        if (ast.objectTemp != ast4Vec && VArithmetics.GetDistance(ast.objectTemp, ast4Vec) < astDistVal)
        {
            collisionFunction(ast);
            ast.collisionTemp = ast4Vec;
        }
    }