BOOL DE JUMP FICANDO TRUE (JUMP NÃO FUNCIONA DE VEZ EM QUANDO)
3 participantes
Página 1 de 1
BOOL DE JUMP FICANDO TRUE (JUMP NÃO FUNCIONA DE VEZ EM QUANDO)
Eu fiz uma "fase" do Mario World usando os sprites do Mario. Até aí, tudo bem. O problema é que às vezes ele fica TRUE, na BOOL JUMP, então o pulo já não funciona mais. Isso acontece quando o MARIO está próximo de algum objeto do tipo, por exemplo, DUAS pedras, uma empilhada na outra. Já tentei de tudo, mas nao consegui. Fiz o By Composite, deixei o Rigidtbody Static no TileMap, coloquei o TileMap Collider, tudo certo.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
bool jump = true;
public Animator mario;
public int direção = 0;
void Update()
{
Rigidbody2D rb = GetComponent<Rigidbody2D>();
if (Input.GetKey("e"))
{
mario.Play("atack");
}
if (Input.GetKey("s"))
{
mario.Play("down");
}
if (Input.GetKey("d"))
{
mario.Play("direita");
rb.AddForce(new Vector2(0.15f, 0), ForceMode2D.Impulse);
direção = 1;
mario.Play("direita");
if (direção == 1)
{
mario.Play("direita");
GetComponent<SpriteRenderer>().flipX = false;
http://mario.enabled = false;
}
}
else if (Input.GetKey("a"))
{
direção = 0;
mario.Play("direita");
rb.AddForce(new Vector2(-0.15f, 0), ForceMode2D.Impulse);
if (direção == 0)
{
mario.Play("direita");
GetComponent<SpriteRenderer>().flipX = true;
}
}
if (Input.GetKey("w"))
{
if (jump)
{
jump = false;
rb.AddForce(new Vector2(0,6), ForceMode2D.Impulse);
mario.Play("pulo");
GetComponent<AudioSource>().Play();
}
}
}
void OnCollisionEnter2D(Collision2D col)
{
Debug.Log("COLIDIU");
jump = true;
}
}
RodrigoPrivilegium- Avançado
- PONTOS : 1818
REPUTAÇÃO : 12
Respeito as regras :
Re: BOOL DE JUMP FICANDO TRUE (JUMP NÃO FUNCIONA DE VEZ EM QUANDO)
boa noite,ja tentou colocar a chamada
- Código:
//chamada quando o objeto sair do outro collisor
void OnCollisionExit2D(Collision2D col){
jump=false;
Debug.Log("saiu da colisão");
}
//verifica os status das teclas porque existe 3 chamadas para os teclados ,mouse etc
Input.GetKey("key") //quando mantem a tecla pressionada
Input.GetKeyDown("key") //quando apenas apertar a tecla
Input.GetKeyUp("key") //ao levantar o dedo da tecla,soltar
Última edição por FelipeSouza11 em Qua Abr 15, 2020 9:04 pm, editado 2 vez(es) (Motivo da edição : Correçao de script)
Re: BOOL DE JUMP FICANDO TRUE (JUMP NÃO FUNCIONA DE VEZ EM QUANDO)
usa raycast deve funcionar melhorRodrigoPrivilegium escreveu:Eu fiz uma "fase" do Mario World usando os sprites do Mario. Até aí, tudo bem. O problema é que às vezes ele fica TRUE, na BOOL JUMP, então o pulo já não funciona mais. Isso acontece quando o MARIO está próximo de algum objeto do tipo, por exemplo, DUAS pedras, uma empilhada na outra. Já tentei de tudo, mas nao consegui. Fiz o By Composite, deixei o Rigidtbody Static no TileMap, coloquei o TileMap Collider, tudo certo.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
bool jump = true;
public Animator mario;
public int direção = 0;
void Update()
{
Rigidbody2D rb = GetComponent<Rigidbody2D>();
if (Input.GetKey("e"))
{
mario.Play("atack");
}
if (Input.GetKey("s"))
{
mario.Play("down");
}
if (Input.GetKey("d"))
{
mario.Play("direita");
rb.AddForce(new Vector2(0.15f, 0), ForceMode2D.Impulse);
direção = 1;
mario.Play("direita");
if (direção == 1)
{
mario.Play("direita");
GetComponent<SpriteRenderer>().flipX = false;
http://mario.enabled = false;
}
}
else if (Input.GetKey("a"))
{
direção = 0;
mario.Play("direita");
rb.AddForce(new Vector2(-0.15f, 0), ForceMode2D.Impulse);
if (direção == 0)
{
mario.Play("direita");
GetComponent<SpriteRenderer>().flipX = true;
}
}
if (Input.GetKey("w"))
{
if (jump)
{
jump = false;
rb.AddForce(new Vector2(0,6), ForceMode2D.Impulse);
mario.Play("pulo");
GetComponent<AudioSource>().Play();
}
}
}
void OnCollisionEnter2D(Collision2D col)
{
Debug.Log("COLIDIU");
jump = true;
}
}
diegopds- Mestre
- PONTOS : 3419
REPUTAÇÃO : 52
Idade : 26
Respeito as regras :
Re: BOOL DE JUMP FICANDO TRUE (JUMP NÃO FUNCIONA DE VEZ EM QUANDO)
Quando ele entra em false é que está colidido,A mas às vezes ele fica em modo true, que diz que não está em colisão. Mas, agora, , eu deixei o rigidbody2D do tilemap de static para skematic e aparentemente deu certo.
RodrigoPrivilegium- Avançado
- PONTOS : 1818
REPUTAÇÃO : 12
Respeito as regras :
Tópicos semelhantes
» Trocar de true pra false em uma animação bool
» Jogo ficando escuro quando faço a Build pela cena menu
» Deixar uma bool salva quando sair do jogo.
» face do objeto ficando invisivel na unity.
» Trigger Abre a Porta quando Entra mas nao Fecha quando Sai!
» Jogo ficando escuro quando faço a Build pela cena menu
» Deixar uma bool salva quando sair do jogo.
» face do objeto ficando invisivel na unity.
» Trigger Abre a Porta quando Entra mas nao Fecha quando Sai!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos