Se quiser dar uma olhada no projeto, aqui o link para baixar no drive:
OBS1: o nome do player é Montu, então o obj_montu é referente ao player.
OBS2: desculpa a demora pra responder, tive um dia muito atarefado
Fiz outro link :
Esse código ta na colisão do hitbox com o meu player, e foi eu que fiz então ta ruim mesmo (desculpa pela falta de lógica x.x)huahau.
Coloquei o x += xforce e y += yforce e o player continua indo pra mesma direção =/
Tenta baixar de novo o projeto, só abrir o link e vai ter a pasta do projeto no google drive pra baixar.
Incrível como era só uma besteirinha dessas ahuahuau, e minha próxima dúvida era isso mesmo... Como fazer pra não bugar na parede hauhauha
Aproveitando o mesmo tópico... Como eu faria esse place_free? Só com um If mesmo?
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. |
Combate Topdown Tópico resolvido
Combate Topdown
Boa noite galera! Sou novo na comunidade e também novo na área. Venho tendo algumas dificuldades nos códigos de um jogo que estou fazendo. Esse jogo é de um projeto da minha faculdade e ele é no estilo TopDown (Tipo Zelda, Pokemon, etc..). O combate dele seria estilo zelda mesmo, porém estou com problemas pra fazer esse combate. O inimigo engancha muito quando bate no player, também da muito dano sem esperar atacar novamente... Enfim, estou com diversos problemas e queria uma ajuda. Seja com algum canal, livro, qualquer coisa q eu possa aprender mais sobre como fazer um combate fluído. Se quiserem posso postar o projeto e disponibilizar pra vocês darem uma olhada..
Desde já agradeço a atenção de todos!
Desde já agradeço a atenção de todos!
Re: Combate Topdown
O que você quer (especificamente para o combate) é hurt e hit box, dê uma pesquisada sobre o assunto.
Se você quiser todo o processo de criação deste projeto basta dar uma olhada no curso do Heartbeast sobre como criar um jogo estilo Zelda mesmo.
O curso dele é feito no GMS2 e necessita de uma versão completa dele, você pode conseguir uma licença de 60 dias gratuita do GMS2 criando uma conta no Amazon fire se não estou enganado.
Se você quiser todo o processo de criação deste projeto basta dar uma olhada no curso do Heartbeast sobre como criar um jogo estilo Zelda mesmo.
O curso dele é feito no GMS2 e necessita de uma versão completa dele, você pode conseguir uma licença de 60 dias gratuita do GMS2 criando uma conta no Amazon fire se não estou enganado.
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Re: Combate Topdown
Sim sim, eu estou usando hit box e também acompanho o tutorial do Hearthbeast, só que o sistema de knockback não ta funcionando igual no tutorial e eu não sei porque... No caso eu to usando a versão 1.4, pois como eu disse é um projeto da faculdade e precisa ser feito nessa versão =/.None escreveu:O que você quer (especificamente para o combate) é hurt e hit box, dê uma pesquisada sobre o assunto.
Se você quiser todo o processo de criação deste projeto basta dar uma olhada no curso do Heartbeast sobre como criar um jogo estilo Zelda mesmo.
O curso dele é feito no GMS2 e necessita de uma versão completa dele, você pode conseguir uma licença de 60 dias gratuita do GMS2 criando uma conta no Amazon fire se não estou enganado.
Se quiser dar uma olhada no projeto, aqui o link para baixar no drive:
Re: Combate Topdown
Dá para ver que o knockback do inimigos está funcionando, então o sistema está ok, o problema está no seu código do knockback para o player, eu sei que o código do Heartbeast é bem organizado, então fica fácil de achar a parte de knockback do player e procurar pelo erro.
Qualquer coisa coloca o código aqui para a gente dar uma olhada.
Qualquer coisa coloca o código aqui para a gente dar uma olhada.
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Re: Combate Topdown
Boa noite ! Então mano, o knockback do player basicamente só vai pra um lado (no caso a direita) e eu não sei como ajeitar isso.. Vou postar o link com o projeto:None escreveu:Dá para ver que o knockback do inimigos está funcionando, então o sistema está ok, o problema está no seu código do knockback para o player, eu sei que o código do Heartbeast é bem organizado, então fica fácil de achar a parte de knockback do player e procurar pelo erro.
Qualquer coisa coloca o código aqui para a gente dar uma olhada.
OBS1: o nome do player é Montu, então o obj_montu é referente ao player.
OBS2: desculpa a demora pra responder, tive um dia muito atarefado
Re: Combate Topdown
O código pro knockback do player está num evento de colisão com a hitbox do inimigo
- Código:
/// Damage the player
global.hp -= 1;
var dir = point_direction(obj_montu.x, obj_montu.y, x, y);
var xforce = lengthdir_x(obj_hitbox_enemy.knockback, dir);
var yforce = lengthdir_y(obj_hitbox_enemy.knockback, dir);
if ((x > 0) && (y > 0)){
x = x + xforce
y = y + yforce
}
else if ((x > 0) && (y < 0)){
x = x + xforce
y = y - yforce
}
else if ((x < 0) && (y > 0)) {
x = x - xforce
y = y + yforce
}
else if ((x < 0) && (y < 0)) {
x = x - xforce
y = y - yforce
}
- Código:
/// Damage the player
global.hp -= 1;
var dir = point_direction(obj_montu.x, obj_montu.y, x, y);
var xforce = lengthdir_x(obj_hitbox_enemy.knockback, dir);
var yforce = lengthdir_y(obj_hitbox_enemy.knockback, dir);
if ((x > 0) && (y > 0)){
x = x + xforce
y = y + yforce
}
else if ((x > 0) && (y < 0)){
x = x + xforce
y = y - yforce
}
else if ((x < 0) && (y > 0)) {
x = x - xforce
y = y + yforce
}
else if ((x < 0) && (y < 0)) {
x = x - xforce
y = y - yforce
}
Re: Combate Topdown
Eu não consegui baixar o seu projeto, mas pelo código que você postou, algumas coisas parecem meio estranhas.
Este código está na colisão do player ou do inimigo?
Se ele está na colisão, não importa de quem for, ao invés de usar obj_alguma coisa, use other.x e other.y
Não vejo qual a necessidade dos If else If etc, o resto do lengthdir pode ser tanto negativo quando positivo, então ele se ajusta automaticamente ao que você quer, basta ignorar todos os If e else e colocar apenas x+= xforce
O máximo que você pode precisar fazer é alterar a ordem no point direction, já que eu não sei quem está rodando o código, então se você quer ir na direção em que o outro está indo (para ser jogado) você coloca o other.x antes.
E olhando bem os If e else (chega a ser engraçado até) só a primeira condição pode acontecer, porque o x < 0 é fora da room e o y < 0 também é fora da room.
Este código está na colisão do player ou do inimigo?
Se ele está na colisão, não importa de quem for, ao invés de usar obj_alguma coisa, use other.x e other.y
Não vejo qual a necessidade dos If else If etc, o resto do lengthdir pode ser tanto negativo quando positivo, então ele se ajusta automaticamente ao que você quer, basta ignorar todos os If e else e colocar apenas x+= xforce
O máximo que você pode precisar fazer é alterar a ordem no point direction, já que eu não sei quem está rodando o código, então se você quer ir na direção em que o outro está indo (para ser jogado) você coloca o other.x antes.
E olhando bem os If e else (chega a ser engraçado até) só a primeira condição pode acontecer, porque o x < 0 é fora da room e o y < 0 também é fora da room.
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Re: Combate Topdown
Estranho não ter dado pra baixar, pq especificamente não deu ?None escreveu:Eu não consegui baixar o seu projeto, mas pelo código que você postou, algumas coisas parecem meio estranhas.
Este código está na colisão do player ou do inimigo?
Se ele está na colisão, não importa de quem for, ao invés de usar obj_alguma coisa, use other.x e other.y
Não vejo qual a necessidade dos If else If etc, o resto do lengthdir pode ser tanto negativo quando positivo, então ele se ajusta automaticamente ao que você quer, basta ignorar todos os If e else e colocar apenas x+= xforce
O máximo que você pode precisar fazer é alterar a ordem no point direction, já que eu não sei quem está rodando o código, então se você quer ir na direção em que o outro está indo (para ser jogado) você coloca o other.x antes.
E olhando bem os If e else (chega a ser engraçado até) só a primeira condição pode acontecer, porque o x < 0 é fora da room e o y < 0 também é fora da room.
Fiz outro link :
Esse código ta na colisão do hitbox com o meu player, e foi eu que fiz então ta ruim mesmo (desculpa pela falta de lógica x.x)huahau.
Coloquei o x += xforce e y += yforce e o player continua indo pra mesma direção =/
Tenta baixar de novo o projeto, só abrir o link e vai ter a pasta do projeto no google drive pra baixar.
- ValdeciVieira
- Moderador
- Reações: 8
- Mensagens: 122
- Localização: Rio de Janeiro, Brasil
Re: Combate Topdown Tópico resolvido
Olá Tafa
Apenas mude isso
O único problema desse código é que o player alguma hora vai parar dentro da parede (já que ele é teletransportado) mas pra da uma arrumadinha nisso é só colocar um place_free :o.-:
Eu tive que baixar o projeto para entender direito,mas uma analisada rápida e já percebi que na colisão com o hit_box inimigo que vc colocou no player voce pega a direção do próprio player 2 vezes.
Apenas mude isso
Pra issoTafa escreveu: /// Damage the player
global.hp -= 1;
var dir = point_direction(obj_montu.x, obj_montu.y, x, y);
var xforce = lengthdir_x(obj_hitbox_enemy.knockback, dir);
var yforce = lengthdir_y(obj_hitbox_enemy.knockback, dir);
if ((x > 0) && (y > 0)){
x = x + xforce
y = y + yforce
}
else if ((x > 0) && (y < 0)){
x = x + xforce
y = y - yforce
}
else if ((x < 0) && (y > 0)) {
x = x - xforce
y = y + yforce
}
else if ((x < 0) && (y < 0)) {
x = x - xforce
y = y - yforce
}
Código: Selecionar todos
/// Damage the player
global.hp -= 1;
var dir = point_direction(other.x, other.y, x, y);
var xforce = lengthdir_x(obj_hitbox_enemy.knockback, dir);
var yforce = lengthdir_y(obj_hitbox_enemy.knockback, dir);
x += xforce;
y += yforce;
Eu tive que baixar o projeto para entender direito,mas uma analisada rápida e já percebi que na colisão com o hit_box inimigo que vc colocou no player voce pega a direção do próprio player 2 vezes.
Tafa escreveu:var dir = point_direction(obj_montu.x, obj_montu.y, x, y)
Re: Combate Topdown
OMGGG deu certo!!! Nossa, muito muito muito obrigado ! Obrigado também ao None que me ajudou!Mega escreveu:Olá Tafa
Apenas mude issoPra issoTafa escreveu: /// Damage the player
global.hp -= 1;
var dir = point_direction(obj_montu.x, obj_montu.y, x, y);
var xforce = lengthdir_x(obj_hitbox_enemy.knockback, dir);
var yforce = lengthdir_y(obj_hitbox_enemy.knockback, dir);
if ((x > 0) && (y > 0)){
x = x + xforce
y = y + yforce
}
else if ((x > 0) && (y < 0)){
x = x + xforce
y = y - yforce
}
else if ((x < 0) && (y > 0)) {
x = x - xforce
y = y + yforce
}
else if ((x < 0) && (y < 0)) {
x = x - xforce
y = y - yforce
}O único problema desse código é que o player alguma hora vai parar dentro da parede (já que ele é teletransportado) mas pra da uma arrumadinha nisso é só colocar um place_free :o.-:Código: Selecionar todos
/// Damage the player global.hp -= 1; var dir = point_direction(other.x, other.y, x, y); var xforce = lengthdir_x(obj_hitbox_enemy.knockback, dir); var yforce = lengthdir_y(obj_hitbox_enemy.knockback, dir); x += xforce; y += yforce;
Eu tive que baixar o projeto para entender direito,mas uma analisada rápida e já percebi que na colisão com o hit_box inimigo que vc colocou no player voce pega a direção do próprio player 2 vezes.Tafa escreveu:var dir = point_direction(obj_montu.x, obj_montu.y, x, y)
Incrível como era só uma besteirinha dessas ahuahuau, e minha próxima dúvida era isso mesmo... Como fazer pra não bugar na parede hauhauha
Aproveitando o mesmo tópico... Como eu faria esse place_free? Só com um If mesmo?
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante