// 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)); }
// 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); } }
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; } }