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.

"HP" de objeto

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
dkoelho
Novato
Novato
Reações: 0
Mensagens: 18
Localização: holocausto de 1944.

"HP" de objeto

Mensagem por dkoelho » Ter Fev 21, 2017 11:53 pm

Opa gente, e aí. Bem, eu não sou muito familiarizado ao GMS mas eu tenho me esforçado pra aprender "na marra", porque eu gosto de treinar bastante por conta própria, aprendendo algumas mecânicas mais específicas em alguns vídeos quando necessário. Mas no momento eu tô fazendo um projeto de estudos só com o que eu "sei", e tô tendo dois problemas. Eu fiz uma caixa com uma variável de HP, que tem um valor específico, e quando fica menor ou igual a 0, ela é destruída, ok. Junto a isso, eu fiz um sistema feio de knockback (x+=10, x-=10, y+=10, y-=10), e tava tudo ok. Mas eu decidi fazer um knockback direito, porque né, fica feio a caixa "teleportando". Tirando esse knockback superficial, eu percebi q a caixa é destruída na mesma hora q eu ataco, eu acho q tem algo a ver com a colisão do hitbox do player. Como faço pra resolver isso? Eu não sei explicar direito, deem uma olhada no projeto:

arquivo do projeto.gmz

Avatar do usuário
ViniciusM
Novato
Novato
Reações: 0
Mensagens: 1

Re: "HP" de objeto

Mensagem por ViniciusM » Qua Fev 22, 2017 12:03 am

Ao inves de colocar: x += 10 ou x -=10 tenta por: hspeed += 2
Hspeed é velocidade horizontal ou seja ao inves de se teleportar ele vai aumentar a velocidade, o movimento vai ser mais suave, o msm serve para Y mas no caso vc usaria Vspeed (velocidade vertical).
E tb pode adicionar Friction = 0.5 (no create event) assim ele vai parando lentamente até parar totalmente. Vai trabalhando com os valores de Friction, Vspeed e Hspeed até chegar num resultado satisfatorio, espero q tenha ajudado!
Lembrando q
X+ é Direita
X- é Esquerda
Y- é pra Cima
Y+ é pra Baixo

Avatar do usuário
jozgamer
Membro
Membro
Reações: 0
Mensagens: 116
Localização: São paulo

Contato:

Re: "HP" de objeto

Mensagem por jozgamer » Qua Fev 22, 2017 11:24 am

é simples, ao invés de destruir o objeto quando ele chega ao hp 0 você pode botar um alarm (30 steps por exemplo) e no evento alarm você coloca a destruição do objeto

Avatar do usuário
junior.rod2
Moderador
Moderador
Reações: 0
Mensagens: 101

Re: "HP" de objeto

Mensagem por junior.rod2 » Qua Fev 22, 2017 6:50 pm

O problema não é exatamente na hitbox de colisão e sim na forma como o código de colisão é executado, tipo, o GM continua executando o código do evento de colisão enquanto a colisão estiver acontecendo, isso que dizer que o código de colisão pode ser executado varias vezes seguidas se você não colocar uma condição ou algo do tipo.
O que estava acontecendo no seu projeto foi que o código de colisão estava disparando varias vezes e "tirando mais que 1 de dano da caixa", tudo que eu precisei fazer para corrigir foi colocar um: 

Código: Selecionar todos

with other instance_destroy();
para destruir os objetos que tiram vida das caixas, no fim do código, evitando que o evento de colisão dispara-se mais de uma vez. 
Minha explicação ficou meio confusa, mas espero que consiga entender. 
bom, precisando, é só chamar ai. 
Aqui esta o seu projeto sem o tal "bug": https://www.dropbox.com/s/db6zb6h70ej69rd/learning2%202.gmz?dl=1
====================================================================================================================
Edit
Você falou que estava precisando de um sistema de knockback, então eu tomei a liberdade de fazer um bem simples que talvez te ajude, esta bem simples mesmo, mas dá para usar.
link: https://www.dropbox.com/s/xuhk9dtpno8df04/learning2%20_Com%20knockback_.gmz?dl=1

Responder

Quem está online

Usuários navegando neste fórum: Google [Bot] e 6 visitantes