(Ajuda)Dano de faca
5 participantes
Página 1 de 1
(Ajuda)Dano de faca
Olá, estou com dificuldade em fazer um sistema de dano de faca, minha lógica é a seguinte: se o player aperta o botão esquerdo do mouse e tempoDeAtaque for >= 0 ele tira um tanto de vida, e quando tempoDeAtaque for >2 ele para de dar dano, ou algo do tipo, script parece bem simples mais não estou conseguindo passar essa lógica para os sripts.
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: (Ajuda)Dano de faca
Você já tem o script da vida do inimigo?
ismarspn- Programador
- PONTOS : 3998
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: (Ajuda)Dano de faca
vc usa um cronometro que adiciona o valor do dano
tipo assim
public float cronometro;
public float Tempo1=1;
public float Tempo2=2;
public float Tempo3=3;
na update vc diz que o cronometro e igual a time.deltaTime
e se vc apertar o botao esquerdo do mouse e o cronometro for igual a algun dos tempos o dano e tanto vou explicar melhor(tenho pouco tempo vou sair)
tipo assim
public float cronometro;
public float Tempo1=1;
public float Tempo2=2;
public float Tempo3=3;
na update vc diz que o cronometro e igual a time.deltaTime
e se vc apertar o botao esquerdo do mouse e o cronometro for igual a algun dos tempos o dano e tanto vou explicar melhor(tenho pouco tempo vou sair)
- Código:
public float cronometro;
public float Tempo1=1;
public float Tempo2=2;
public float Tempo3=3;
public float dano;
void update () {
cronometro = time.deltaTime;
if(Input.GetButtonDown("Fire1") && cronometro == Tempo1)
dano = Tempo1;
}
if(Input.GetButtonDown("Fire1") && cronometro == Tempo2)
dano = Tempo2;
}
if(Input.GetButtonDown("Fire1") && cronometro == Tempo3)
dano = Tempo3;
}
//se te ajudou da um like desculpe se tiver errado pq n tenho tempo de testar
//mais tem que linkar o inimigo por tag (pra abaixar a vida dele) tipo assim
public gameobject Inimigo;
public VidaInimigo vida;
vida = GameObject.FindGameObjectWithTag("Inimigo");
player = vida.GetComponent<Vida> ();
e nos if's faz assim
if(Input.GetButtonDown("Fire1") && cronometro == Tempo3)
dano = Tempo3;
vida.VidaI -= Tempo3 //ou o dano que vc quiser e so colocar um numero
}
gustavo Games Indie- Avançado
- PONTOS : 3466
REPUTAÇÃO : 18
Idade : 28
Respeito as regras :
Re: (Ajuda)Dano de faca
Diga, você quer que o dano vá incrementando conforme você vai batendo no inimigo? isso?
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: (Ajuda)Dano de faca
entendi tipo rit ne
ja sei como faz
se ajudou deixa um like
so uma pergunta seu jogo e 2d ou 3d dependendo do formato posso te ajudar no seu jogo
ja sei como faz
- Código:
public float dano;
public float DistanciaInimigo;
Private VidaInimigo ScriptVidaInimigo; //aqui vc coloca o nome do script de vida do inimigo
Private GameObject Inimigo;
Private GameObject Player;
void Start () {
Player = GameObject.FindWithTag("Player");
ScriptVidaInimigo = GameObject.FindWithTag("Inimigo");
Inimigo = ScriptVidaInimigo.GetComponent<VidaInimigo> ();
}
void Update () {
DistanciaInimigo = Vector3.distance(Player.position , Inimigo.position);
if(Input.GetButtonDown("Fire1") && DistanciaInimigo <=3)
Inimigo.vidaRestante -= dano;
dano ++;
}
se ajudou deixa um like
so uma pergunta seu jogo e 2d ou 3d dependendo do formato posso te ajudar no seu jogo
gustavo Games Indie- Avançado
- PONTOS : 3466
REPUTAÇÃO : 18
Idade : 28
Respeito as regras :
Re: (Ajuda)Dano de faca
Veja, nao é mais facil apenas dar um dano total? Ah nao ser que ele vá demorar segundos para terminar a animação da facada é melhor fazer um dano simples e total logo na facada. Nao daria tempo de sair antes da animacao acabar e ai dar um dano menor por consequencia.
Apenas verifique se o tempo de ataque acabou antes de deixar atacar denovo.
Mas se quiser mesmo um dano por tempo de contato e tempo de ataque a logica é simples.
Enquanto a animacao está rolando e a faca estiver a uma distancia requerida (bem perto) o dano será dado, senao nada acontecerá. Se quiser pode ir dobrando o valor de dano por 1.2 (20%) ou sla.
Apenas verifique se o tempo de ataque acabou antes de deixar atacar denovo.
Mas se quiser mesmo um dano por tempo de contato e tempo de ataque a logica é simples.
Enquanto a animacao está rolando e a faca estiver a uma distancia requerida (bem perto) o dano será dado, senao nada acontecerá. Se quiser pode ir dobrando o valor de dano por 1.2 (20%) ou sla.
RenanMSV- Instrutor
- PONTOS : 4483
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Tópicos semelhantes
» Ajuda Como fazer uma faca
» ajuda com script de dano
» (Ajuda) Dano ao inimigo
» (Ajuda) dano ao player
» (AJÚDA) Problemas com o sistema de dano
» ajuda com script de dano
» (Ajuda) Dano ao inimigo
» (Ajuda) dano ao player
» (AJÚDA) Problemas com o sistema de dano
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos