Page 2 sur 2

Re: son qui est coupé au mileu

Publié : 23 Mai 2023 08:34
par boubouk50
j'ai rien compris

Re: son qui est coupé au mileu

Publié : 23 Mai 2023 20:41
par zatven
ben tu vois pour savoir si mon personnage et mort (game over) j'ai juste rajouter un peu de code dans le void Update , mais pour savoir si mon personnage a toucher un tuyaux j'ai mis un void OnCollisionEnter2D et je voulais savoir si il existait pas un truc similaire au void OnCollisionEnter2D(Collision2D collision) mais pour les position
ex: void si position = bla bla bla
{
gameover
etc...
}

jsp si ta compris se que je voulais dire

Re: son qui est coupé au mileu

Publié : 24 Mai 2023 08:33
par boubouk50
Balance ton code, ce sera plus clair.
Mais en gros, c'est le OnCollisionEnter2D(Collision2D collision) qui devrait gérer le GameOver.
Sinon, dans l'Update () une fois que le GameOver est prononcé, donc que tu es entré dans la condition, il faut faire en sorte de ne plus y rerentrer les frames suivantes.

Re: son qui est coupé au mileu

Publié : 24 Mai 2023 23:02
par zatven
tiens c le code du personnage

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;

public class PlayerMovment : MonoBehaviour
{
    public Rigidbody2D MyRigidBody;
    public float flapStength;
    public Logic logic;
    public bool birdIsAlive = true;


    // Start is called before the first frame update
    void Start()
    {
        logic = GameObject.FindGameObjectWithTag("Logic").GetComponent<Logic>();
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space) && birdIsAlive)
        {
            MyRigidBody.velocity = Vector2.up * flapStength;
        }

        if(transform.position.y > 15 || transform.position.y < -14)
        {
            birdIsAlive = false;
            logic.gameOver();
        }

    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        birdIsAlive = false;
        logic.gameOver();
    
    }

    private void 
}
juste pour info logic c le code que je t'ai envoyer la dernier fois

Re: son qui est coupé au mileu

Publié : 25 Mai 2023 08:41
par boubouk50
Le problème se situe bien dans ta condition de gameOver.
Lorsque ton player est hors cadre (< -14 ou > 15), tu appelles gameOver (), mais ce que tu ne fais pas c'est empêcher cet appel par la suite.
Ici, techniquement, une fois ton personnage en gameOver (donc hors cadre), à chaque frame, il va retourner dans la condition de gameOver puisqu'il reste hors cadre. Il faut donc contraindre cette condition avec une variable (généralement booléenne) pour savoir si tu es déjà en situation de gameOver ou non.
Cette variable est peut être déjà présente : birdIsAlive.

Code : Tout sélectionner

//Si l'oiseau est vivant alors gameOver est possible, sinon, on ne peut entrer dans cette condition
if(birdIsAlive && (transform.position.y > 15 || transform.position.y < -14))
{
  birdIsAlive = false;
  logic.gameOver();
}

Re: son qui est coupé au mileu

Publié : 25 Mai 2023 20:23
par zatven
ok c'etait bien ca merci