Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Ajuda player e inimigo

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
DVictor
Novato
Novato
Reações: 0
Mensagens: 13

Contato:

Ajuda player e inimigo

Mensagem por DVictor » Sex Out 21, 2016 5:47 pm

Seguinte, eu to com um pequeno problemitcha aqui:
 sempre que o player pula no inimigo, o inimigo morre, e quando o player encosta no inimigo, ele fica piscando e não pode tomar dano nesse tempo que ele pisca

SÓ QUE

eu queria que além do player piscar, ele desse um dashzinho pra traz. Como acontece no SONIC por exemplo, ou no MEGAMAN (tipo alternar uma sprite indicando que ele tomou dano e ele dar o dash pra traz)
Eu to usando isso aqui na colisão do player com o inimigo

Código: Selecionar todos

if piscando = false and noar=false {
global.saude -= 1
piscando = true
alarm[0] = 120 //tempo pro player parar de piscar
}

Ajudem-me se possível ;-;
http://vpsgames.blogspot.com/ <- Veja um pouco mais dos meus jogos :D

Avatar do usuário
Dust
Membro
Membro
Reações: 0
Mensagens: 109
Localização: Santa Catarina

Re: Ajuda player e inimigo

Mensagem por Dust » Sex Out 21, 2016 5:54 pm

isso não é dificiu, você pode fazer por exemplo

Código: Selecionar todos

if piscando=true {sprite_index=dash_spr; x-=1}
Se possível, preste atenção no que você está fazendo, e pare de ficar copiando da internet, ou de uma engine, tente aprender.

Avatar do usuário
Rodrigo Santiago
Colaborador
Colaborador
Reações: 0
Mensagens: 273

Re: Ajuda player e inimigo

Mensagem por Rodrigo Santiago » Sex Out 21, 2016 5:56 pm

Tente o seguinte na hora que ele colidir com o inimigo:

Código: Selecionar todos

x += sign(x-inimigo.x) * 5;

Avatar do usuário
DVictor
Novato
Novato
Reações: 0
Mensagens: 13

Contato:

Re: Ajuda player e inimigo

Mensagem por DVictor » Sex Out 21, 2016 6:08 pm

@Dust - O código realmente dá um mini dash pra traz quando o player está na frente do inimigo. Porém quando ele colide de traz pra frente, ao em vez de ele ir pra traz ele ta indo pra frente do inimigo. Ex = Ele ta na esquerda do inimigo e colide com ele, dai ele da um mini dash pra esquerda. Dai ele ta na direita do inimigo, ele colide e da um dash pra esquerda, sendo que era pra ter ido pra direita

@Rodrigo - Não funcionou, vou tentar dar uma improvisada no método que o Dust deixou ali

Muito obrigado por tentarem ajudar :)
http://vpsgames.blogspot.com/ <- Veja um pouco mais dos meus jogos :D

Avatar do usuário
divin sphere hirosha
Membro
Membro
Reações: 1
Mensagens: 96

Re: Ajuda player e inimigo

Mensagem por divin sphere hirosha » Sex Out 21, 2016 6:14 pm

vou tentar mudar o codigo do dust um pouco para ver se resolve
cria no create a variavel:

Código: Selecionar todos

dano_lado=1

e na colisão com o inimigo quando levar dano:

Código: Selecionar todos

if other.x>x{dano_lado=1}else{dano_lado=-1}

e no step o codigo do dust mas assim:

Código: Selecionar todos

if piscando=true {sprite_index=dash_spr; x-=dano_lado}
acho que deve funcionar
Ei você! você que está do outro lado da telinha, Tudo ótimo? Venha conferir meus projetos na google play!

Cubow Racer Infinity
MineField
FishBreak
Bring The Block

Ver Todos os Projetos

Avatar do usuário
DVictor
Novato
Novato
Reações: 0
Mensagens: 13

Contato:

Re: Ajuda player e inimigo

Mensagem por DVictor » Sex Out 21, 2016 6:24 pm

@Divin - Não funcionou.

Então eu fiz de outra maneira que também não funcionou.
No create eu deixei assim:

Código: Selecionar todos

dash=false
Então, quando o player colidisse com o inimigo, ficou:

Código: Selecionar todos

if piscando = false and noar=false {
global.saude -= 1
piscando = true
alarm[0] = 120 //tempo pro player parar de piscar, 4 segundos, pra ficar piscando=false
alarm[1] = 5 // tempo pro dash acabar, pra ficar dash=false
dash=true
}
Então no step eu coloquei assim:

Código: Selecionar todos

if dash=true {sprite_index=dash_spr; x-=4}
O Problema, é que o dash ta dando so pra esquerda, e é bem pouquinho.

Alguma outra ideia?  :tedio:
Editado pela última vez por DVictor em Sex Out 21, 2016 6:29 pm, em um total de 1 vez.
http://vpsgames.blogspot.com/ <- Veja um pouco mais dos meus jogos :D

Avatar do usuário
Rodrigo Santiago
Colaborador
Colaborador
Reações: 0
Mensagens: 273

Re: Ajuda player e inimigo

Mensagem por Rodrigo Santiago » Sex Out 21, 2016 6:29 pm

guarde o lado usando sign (ele retorna -1 ou 1 dependendo do numero) :
na colisao :

Código: Selecionar todos

dashDir = sign(other.x - x)
no step :

Código: Selecionar todos

if dash=true {sprite_index=dash_spr; x-=4 * dashDir}

Avatar do usuário
Dust
Membro
Membro
Reações: 0
Mensagens: 109
Localização: Santa Catarina

Re: Ajuda player e inimigo

Mensagem por Dust » Sex Out 21, 2016 6:30 pm

Não é preciso criar uma variável, apenas comparar as posições para não ficar criando coisas, ou ocupando o seu projeto:

Código: Selecionar todos

if x<inimigo.x {sprite_index=dash_spr; image_xscale=-1; x-=1} else {sprite_index=dash_spr; image_xscale=1; x+=1}
Pronto, assim nem é preciso criar 2 sprites para o dash como por exemplo dash_direita e dash_esquerda pois a image_xscale ira inverter a sprite.

Avatar do usuário
DVictor
Novato
Novato
Reações: 0
Mensagens: 13

Contato:

Re: Ajuda player e inimigo

Mensagem por DVictor » Sáb Out 22, 2016 11:59 am

Muito obrigado, consegui resolver aqui!
http://vpsgames.blogspot.com/ <- Veja um pouco mais dos meus jogos :D

Trancado

Quem está online

Usuários navegando neste fórum: Ahrefs [Bot], Google [Bot] e 4 visitantes