como fazer o personagem rolar em 2D
5 participantes
Página 1 de 1
como fazer o personagem rolar em 2D
OI tenho um personagem q anda pelas teclas S D só é um game 2D , quero q quando aperte S ou D duas vezes ele role , como posso fazer
contaska- Membro
- PONTOS : 2735
REPUTAÇÃO : 2
Respeito as regras :
Re: como fazer o personagem rolar em 2D
especife melhor,rolar o personagem na direcao que ira andar?? para isso tem que ser um personagem spriteRenderer,
e usar o flipX para trocar de direcao,quando apertar s ou d
e usar o flipX para trocar de direcao,quando apertar s ou d
Re: como fazer o personagem rolar em 2D
o personagem rolar no chão como na maioria dos jogos , mas quero que a tecla S ou D seja apertada duas vezes pra ação acontecer.
contaska- Membro
- PONTOS : 2735
REPUTAÇÃO : 2
Respeito as regras :
Re: como fazer o personagem rolar em 2D
existe varios metodos de fazer isso, aqui vai um exemplo: usando variaveis. espero q entenda se der algum erro comunique
- Código:
public int maxclicks = 2; //pode ser alterado no inspector numero max de clicks para a acao
public int clickatual = 0; //nao precisa mudar nada
public float tempoclick=0;//ignore e nao mude o valor
public float tempoexpire=0.12f; // o tempo vai inspira se nao aperta a outra tecla depois da primeira pode mudar no inspetor
public bool iniciouotempo; //quando pressionar a tecla pela primeira vez vai iniciar a contagem
// Use this for initialization
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.S)|| Input.GetKeyDown(KeyCode.D) && clickatual <=2) //as teclas e o click inicial q e 0
{
clickatual += 1;
iniciouotempo = true; //vai iniciar a contagem
}
if (iniciouotempo)
{
tempoclick += 0.1f*Time.deltaTime; //iniciou a contagem
}
if (clickatual>=maxclicks) //se pressionar duas vezes a acao
{
Debug.Log("acao"); //uma acao ,um metodo
clickatual = 2; //para nao continuar os click depois da acao
tempoclick = tempoexpire ; //para a contagem apos a acao para impedir erros
}else if (tempoclick >= tempoexpire) //se ultrapassar o tempo para pressionar a segunda vez tera q repetir duplo click
{
tempoclick = 0;
iniciouotempo = false;
clickatual = 0; //comeca tudo dnovo
}
}
}
Re: como fazer o personagem rolar em 2D
parece que n foi . quando eu coloco para ele fazer a primeira açao no primeiro aperta da tecla s ele n faz a açao e quando eu aperto duas vezes a açao é repetida varias vezes . o debug.log chegou a registra 126 vezes ;
- Código:
private float speed = 2f;
//---------------------------------
public int maxclicks = 2; //pode ser alterado no inspector numero max de clicks para a acao
public int clickatual = 0; //nao precisa mudar nada
public float tempoclick=0;//ignore e nao mude o valor
public float tempoexpire=0.12f; // o tempo vai inspira se nao aperta a outra tecla depois da primeira pode mudar no inspetor
public bool iniciouotempo; //quando pressionar a tecla pela primeira vez vai iniciar a contagem
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
Moviment ();
}
void Moviment(){
if (Input.GetKeyDown(KeyCode.S) && clickatual <=2) //as teclas e o click inicial q e 0
{
transform.Translate (Vector2.right * speed * Time.deltaTime);
clickatual += 1;
iniciouotempo = true; //vai iniciar a contagem
}
if (iniciouotempo)
{
tempoclick += 0.1f*Time.deltaTime; //iniciou a contagem
}
if (clickatual>=maxclicks) //se pressionar duas vezes a acao
{
transform.position = new Vector3(transform.position.x +- 1, transform.position.y, transform.position.z);
Debug.Log("acao"); //uma acao ,um metodo
clickatual = 2; //para nao continuar os click depois da acao
tempoclick = tempoexpire ; //para a contagem apos a acao para impedir erros
}else if (tempoclick >= tempoexpire) //se ultrapassar o tempo para pressionar a segunda vez tera q repetir duplo click
{
tempoclick = 0;
iniciouotempo = false;
clickatual = 0; //comeca tudo dnovo
}
}
}
contaska- Membro
- PONTOS : 2735
REPUTAÇÃO : 2
Respeito as regras :
Re: como fazer o personagem rolar em 2D
assim,do jeito que entendi no script q vc repoz,vc esta movendo um personagem,no script q passei so pode ser executado apertando a mesma tecla duas vezes na segunda q a acao e executada mais ela é executa diretamente ou seja o jogador vai fikar se movendo sozinho,o debug.log é normal pq ele ta na void update enquanto ele nao tiver um bloqueio ele vai fazer muitos prints
Re: como fazer o personagem rolar em 2D
se vc quizer mover o player pra frente ou pra tras so colocar o
- Código:
Input.GetKey(KeyCode.S){
//acao movimento para esquerda
}
Input.GetKey(KeyCode.D){
//acao mov direita
}
/*se vc tiver uma animacao personagem sprite mais facil,qualquer coisa mande um link d video d exemplo
para entender seu objetivo,qualquer coisa tamo aeh,boa noite
*/
Re: como fazer o personagem rolar em 2D
Sim eu sei mas quando eu aperto S uma vez nenhuma açao é feita ,so quando aperto duas vezes q ele faz algo
poker14k- Iniciante
- PONTOS : 2895
REPUTAÇÃO : 0
Respeito as regras :
Re: como fazer o personagem rolar em 2D
Assim como o duplo clique do windows, o que você precisa é fazer uma checagem de tempo entre os toques no botão. assim, caso aperte num pequeno intervalo de tempo, ele executará a animação de rolagem, ao invés da normal.
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: como fazer o personagem rolar em 2D
Cara, se fosse Eu usaria A & D para mover-se Para < e >, mas é o seu gosto!
tem vários jeitos de se resolver isso! A maneira mais fácil de fazer um script assim, é aperfeiçoando o Script de Combo!
Se vc não sabe é mais ou menos assim: \/
(talvez esteja meio difícil de entender, mas o que eu quero que vc faça é aperfeiçoar ele para o que vc quer)
Obs: ESSE NÃO É O SCRIPT DE COMBO, POIS EU MELHOREI PARA SUA DÚVIDA!
Crie um parâmetro no ANIMATOR, de Movimentação(SE FOR FLOAT É MELHOR! Alí está SetBool, pois esse era um script de Combo!) e de Rolling.
Lá em "Walk" pode ser usado qualquer coisa que represente o que vem antes do Rolling!
SE NÃO ENTEDER NADA, É SÓ AVISAR! espero que ajude em pelo menos algo!
tem vários jeitos de se resolver isso! A maneira mais fácil de fazer um script assim, é aperfeiçoando o Script de Combo!
Se vc não sabe é mais ou menos assim: \/
(talvez esteja meio difícil de entender, mas o que eu quero que vc faça é aperfeiçoar ele para o que vc quer)
Obs: ESSE NÃO É O SCRIPT DE COMBO, POIS EU MELHOREI PARA SUA DÚVIDA!
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rolling : MonoBehaviour {
// Importante o Clip info!
private AnimatorClipInfo[] Clip;
private Animator Anim;
// Bools de Animação de movimento.
private bool Move1;// Movimento comum.
private bool Move2;// Rolling.
void Awake ()
{
Anim = GetComponent<Animator> ();
}
// Void de ataque.
void Atk ()
{
Move1 = false;
//
if (Input.GetButtonDown ("Move") && User.Grounded == true)
{
Move1 = true;
Move2 = false;
Clip = Anim.GetCurrentAnimatorClipInfo (0);
if (Clip [0].clip.name == "Walk")
{
Move1 = false;
Move2 = true;
}
}
}
void ParametersAnimatorUpdate ()
{
// Parametros de animação, uma é a de movimento e a outra de Rolagem.
Anim.SetBool ("Move", Move1);
Anim.SetBool ("Roll", Move2);
}
void Update ()
{
Atk ();
ParametersAnimatorUpdate ();
}
}
Crie um parâmetro no ANIMATOR, de Movimentação(SE FOR FLOAT É MELHOR! Alí está SetBool, pois esse era um script de Combo!) e de Rolling.
Lá em "Walk" pode ser usado qualquer coisa que represente o que vem antes do Rolling!
SE NÃO ENTEDER NADA, É SÓ AVISAR! espero que ajude em pelo menos algo!
Vitor Paulino- Iniciante
- PONTOS : 2687
REPUTAÇÃO : 1
Idade : 21
Respeito as regras :
Re: como fazer o personagem rolar em 2D
ta esse if (clip[0]) vai ser executado quando eu aperta a primeira vez a tecla ou a segunda ?
contaska- Membro
- PONTOS : 2735
REPUTAÇÃO : 2
Respeito as regras :
Tópicos semelhantes
» Como fazer o personagem me atacar e fazer o personagem morrer??
» Alguém poderia fazer uma aula de como criar um sistema de fazer o personagem trocar de equipamento?
» Como Fazer O Personagem Virar
» jogo 3D como fazer o personagem...
» Como fazer o Personagem Virar ?
» Alguém poderia fazer uma aula de como criar um sistema de fazer o personagem trocar de equipamento?
» Como Fazer O Personagem Virar
» jogo 3D como fazer o personagem...
» Como fazer o Personagem Virar ?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos