[DB-AL] déplacements

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
eugenie86
Messages : 11
Inscription : 10 Mai 2020 02:56

[DB-AL] déplacements

Message par eugenie86 » 11 Mai 2020 03:01

Bonjour à tous! :-D

Pour un projet de Game en 2D,
Voilà les 2 lignes que j'ai mis dans mon script pour faire déplacer mon objet "player".

Code : Tout sélectionner

      Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0.0f);
      transform.position = transform.position + movement * Time.deltaTime;
Sauf que j'aimerais que mon objet "player" avance uniquement quand j'appuie sur la flèche droite ou sur la flèche gauche (et non pas la flèche "haut").
En fait, si j'appuie sur la flèche droite, l'objet ira vers la droite et avancera en même temps, et si j'appuie sur la flèche gauche, l'objet ira vers la gauche et avancera en même temps.

Peut-être que c'est dans le "project setting" qu'il faut que j'apporte des modifications, et non pas dans le script? Mais je ne sais pas quelles modifications...

Merci pour votre aide! :amen:

Avatar de l’utilisateur
Aelhan
Messages : 124
Inscription : 11 Déc 2019 23:00

Re: [DB-AL] déplacements

Message par Aelhan » 11 Mai 2020 09:09

Bonjour,

Tu donnes peu d'éléments de script, mais de ce que j'en comprends, il suffirait de faire :

Code : Tout sélectionner

      Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Horizontal"), 0.0f);
      transform.position = transform.position + movement * Time.deltaTime;
Et tu peux ajouter un coefficient à l'un des membres de ton Vector3, histoire d'incliner la diagonale comme tu veux
Celui qui pose une question risque cinq minutes d'avoir l'air bête.
Celui qui ne pose pas de question restera bête toute sa vie.

EmileF
Messages : 676
Inscription : 18 Mars 2017 19:39

Re: [DB-AL] déplacements

Message par EmileF » 11 Mai 2020 09:10

Salut,

Je suppose que tu veux que ton player monte au fur et à mesure que tu te déplaces à gauche ou à droite

Voilà un script possible (non teste)

Code : Tout sélectionner

    public float speedHorizontal = 1.0f; //pour régler sa vitesse horizontale
    public float speedVertical = 0.5f;   //pour régler sa vitesse verticale en plus ou en moins selon qu'il monte ou qu'il descend

    private void Update()
    {
        float v = Input.GetAxis("Horizontal");
        //Mathf.Abs() pour toujours avoir une valeur positive pour qu'il monte ou descende seulement
        Vector3 movement = new Vector3(v * speedHorizontal, Mathf.Abs(v) * speedVertical, 0);
        transform.position += movement * Time.deltaTime;
    }
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.

Avatar de l’utilisateur
jmhoubre
Messages : 857
Inscription : 05 Oct 2019 22:05

Re: [DB-AL] déplacements

Message par jmhoubre » 11 Mai 2020 13:50

Bonjour,
si j'ai bien compris ton besoin, il suffit d'ignorer les input verticaux :

Code : Tout sélectionner

	Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), 0f, 0f);
	transform.position = transform.position + movement * Time.deltaTime;

Répondre

Revenir vers « (C#) CSharp »