Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - pcorralr

#1
Buenas, soy muy novato en esto. he hecho alguna prueba y he seguido bastantes tutoriales de pproyectos de unity3D.El caso es que busco y no encuentro la manera de hacer un control para un coche visto desde arriba en 2D. Si alguien sabe de algun tutorial para aprender a acelerar el coche segun la direccion en la que esté mirando, le agradeceria mucho que me pasara el link.Por mis propios medios solo  consigo moverlo en la direccion de las flechas del teclado pero lo que intento es por ejemplo pulsar arriba y que se mueva en la direccion en la que está el coche, que acelere.Llevo dias buscando y no encuentro como hacerlo y la verdad que me estoy desesperando un poco ya using UnityEngine;
using System.Collections;

public class CarMovement : MonoBehaviour {
    public float power = 50;
    public float maxspeed = 50;
    public float turnpower = 2;
    public float friction = 3;
    public Vector2 curspeed;
    Rigidbody2D rigidbody2D;

    // Use this for initialization
    void Start()
    {
        rigidbody2D = GetComponent<Rigidbody2D>();
    }


    void FixedUpdate()
    {
        curspeed = new Vector2(rigidbody2D.velocity.x, rigidbody2D.velocity.y);

        if (curspeed.magnitude > maxspeed)
        {
            curspeed = curspeed.normalized;
            curspeed *= maxspeed;
        }

        if (Input.GetKey(KeyCode.S))
        {
            rigidbody2D.AddForce(transform.up * power);
            rigidbody2D.drag = friction;
        }
        if (Input.GetKey(KeyCode.W))
        {
            rigidbody2D.AddForce(-(transform.up) * (power / 2));
            rigidbody2D.drag = friction;
        }
        if (Input.GetKey(KeyCode.A))
        {
            transform.Rotate(Vector3.forward * turnpower);
        }
        if (Input.GetKey(KeyCode.D))
        {
            transform.Rotate(Vector3.forward * -turnpower);
        }

        noGas();

    }

    void noGas()
    {
        bool gas;
        if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.S))
        {
            gas = true;
        }
        else
        {
            gas = false;
        }

        if (!gas)
        {
            rigidbody2D.drag = friction * 2;
        }
    }
}
 
#2
General (Antiguo) / Saludos!!
Enero 22, 2016, 09:14:54 PM
Buenas!Soy un administrador de sistemas que no a ejercido nunca profesionalmente. Luego hice un Master de desarrollo de aplicaciones moviles y no he vuelto a programar desde entonces.El caso es que he llegado aquí porque, como es obvio me gusta la informática y me gusta la programación aunque por motivos monetarios continuo en mi trabajo de logistica en vez de dedicarme a lo que me gustaría. Pero bueno eso son cosas personales.Un placer compartir el foro con vosotros  y voy directo a preguntar una duda en su lugar correspondiente.