Avatar do usuário
rafarp23
Membro
Membro
Autor
Mensagens: 45
Registrado em: Sex Jun 02, 2017 9:44 am
Localização: São José do Rio Preto, SP
Karma: 69

Ajuda com ataque por mouse

Seg Dez 10, 2018 12:03 pm

Olá galera, preciso de uma ajuda com o ataque por mouse!
É o seguinte quero um sistema para atacar com o mouse direito, fiz um usando o x, y do mouse com o x e y do player, só que ele solta tudo junto, como faço para atirar na direção do mouse, sem diagonais?

Quem puder ajudar agradeço muito!
]-- [RagnumWorld] --
Em breve!!!
 
Avatar do usuário
None
Administrador
Administrador
Mensagens: 270
Registrado em: Sáb Abr 14, 2018 8:11 pm
Karma: 654

Re: Ajuda com ataque por mouse

Seg Dez 10, 2018 6:34 pm

Eu não entendi o que você quer fazer.

Tem como colocar o código aqui e explicar o que você quer que ele faça?
1
Cachorro-quente!!!

Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
 
Avatar do usuário
rafarp23
Membro
Membro
Autor
Mensagens: 45
Registrado em: Sex Jun 02, 2017 9:44 am
Localização: São José do Rio Preto, SP
Karma: 69

Re: Ajuda com ataque por mouse

Ter Dez 11, 2018 11:47 am

o código é
if mouse_x > x{
instance_create(x,y, obj_tiroRight);
}else if mouse_x < x{
instance_create(x,y, obj_tiroLeft);
}else if mouse_y > y{
instance_create(x,y, obj_tiroUp);
}else if mouse_y < y{
instance_create(x,y, obj_tiroDown);
}


Tipo se eu ataco ele solta o tiro para direita e baixo junto, quero que ele atira apenas uma vez quando eu clickar com o mouse direito, e que seja na direção que o mouse está!
]-- [RagnumWorld] --
Em breve!!!
 
Avatar do usuário
None
Administrador
Administrador
Mensagens: 270
Registrado em: Sáb Abr 14, 2018 8:11 pm
Karma: 654

Re: Ajuda com ataque por mouse

Ter Dez 11, 2018 4:18 pm

Entendi, você quer que ele atire na direção do mouse, porém você não quer usar o point_direction porque você não quer atirar em ângulo, correto?

A resposta é que você usa o point direction do mesmo jeito hahaha.

Fica assim
dir = point_direction(x, y, mouse_x, mouse_y);
Aqui eu peguei a direção do mouse em relação a mim.

Var dir2 = (dir div 90) * 90;
Aqui eu dividi a direção que eu recebi por 90 com o div (que retorna um número inteiro), ou seja eu recebi ou 0 ou 1 ou 2 ou 3 e depois eu multipliquei isso por 90 retornando a direção sem ângulo.

var tiro = instance_create(x, y, obj_tiro)
tiro.direction = dir2;
tiro.speed = 5;
Agora eu criei um tiro para a direção que eu quero com 5 de velocidade.

Espero ter ajudado
1
Cachorro-quente!!!

Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
 
Avatar do usuário
rafarp23
Membro
Membro
Autor
Mensagens: 45
Registrado em: Sex Jun 02, 2017 9:44 am
Localização: São José do Rio Preto, SP
Karma: 69

Re: Ajuda com ataque por mouse

Qua Dez 12, 2018 12:07 pm

Noosa mano muito obrigado mesmo, deu certo aqui!

EDIT
Só tem um problema,a ele ataca na direção certa, mas o mouse tem que ficar na linha reta do x e y, queria que ele atacasse sem estar na reta do x e y do player, tipo se tivece uma area grande que nessa area seria o lado que eu fosse atirar.
]-- [RagnumWorld] --
Em breve!!!
 
Avatar do usuário
None
Administrador
Administrador
Mensagens: 270
Registrado em: Sáb Abr 14, 2018 8:11 pm
Karma: 654

Re: Ajuda com ataque por mouse

Qua Dez 12, 2018 2:41 pm

Oo
O mouse não precisa ficar em linha reta com o modelo que eu te dei.

Tem como você copiar o seu código inteiro e colar aqui para eu dar uma olhada?
1
Cachorro-quente!!!

Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
 
Avatar do usuário
rafarp23
Membro
Membro
Autor
Mensagens: 45
Registrado em: Sex Jun 02, 2017 9:44 am
Localização: São José do Rio Preto, SP
Karma: 69

Re: Ajuda com ataque por mouse

Qua Dez 12, 2018 3:24 pm

O código está assim:
if mouse_check_button_pressed(mb_right) && attackAble = "false"{
attackAble = "true";

var dir = point_direction(x, y-24, mouse_x, mouse_y);
var dir2 = (dir div 90) * 90;

if class == "Archer"{
    var attack = instance_create_layer(x, y, "Instances", obArrow)
 audio_play_sound(soArrow,1,false);
}else if class == "Gladiator"{
 var attack = instance_create_layer(x, y, "Instances", obSlashR)
 audio_play_sound(soSword,1,false);
}

attack.direction = dir2;
attack.speed = 3;
}


O centro do player está sobre o meio dos pés

O exemplo que pretendo é como a imagem abaixo:
Imagem

Se ou mouse estiver sobre a area azul que é o Y do player ele ataca na direção do mouse, cima ou baixo.
E se estiver sobre a area vermelha ele ataca para esquerda ou direita.

O jeito que está atacando está diferente, o mouse tem que estar pra baixo do pé e pra direita para atacar para baixo, e se estiver pra cima do player e na direita ele ataca pra direita!
]-- [RagnumWorld] --
Em breve!!!
 
Avatar do usuário
None
Administrador
Administrador
Mensagens: 270
Registrado em: Sáb Abr 14, 2018 8:11 pm
Karma: 654

Re: Ajuda com ataque por mouse

Qua Dez 12, 2018 4:31 pm

Tenta sem o -24 no y para ver no que da, provavelmente a sua tentativa de centralização "atrapalhou" os cálculos do game maker.

Qualquer coisa faz o seguinte
If (ABS(mouse_x - x) <= sprite_width)
{
//Mouse está dentro de mim horizontalmente
If(mouse_y > y)
{
tiro para baixo
}
else
{
tiro para cima
}
}
else
{
If(mouse_x > x)
{
tiro para direira
}
else
{
tiro para esquerda
}
}


Aqui eu estou checando se o mouse está horizontalmente ocupando o mesmo espaço que o player, se estiver quer dizer que vou atirar para cima ou para baixo (com base na sua figura).
Se ele não estiver quer dizer que vou atirar para os lados.

Eu acho que o código da direção é mais elegante, mas este outro modelo deve funcionar bem
Cachorro-quente!!!

Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
 
Avatar do usuário
rafarp23
Membro
Membro
Autor
Mensagens: 45
Registrado em: Sex Jun 02, 2017 9:44 am
Localização: São José do Rio Preto, SP
Karma: 69

Re: Ajuda com ataque por mouse

Qua Dez 12, 2018 5:47 pm

Aeee, esse código deu certo, agora ta atacando normal, muito obrigado pela sua ajuda!

Sabe como posso criar um inventório por tipo? ex: armor, weapon, shield
ou se não criar algum objeto que se eu arrastar outro objeto com o tipo que a box requer em cima dela ele fica lá como se eu tivece equipado!
]-- [RagnumWorld] --
Em breve!!!
 
Avatar do usuário
None
Administrador
Administrador
Mensagens: 270
Registrado em: Sáb Abr 14, 2018 8:11 pm
Karma: 654

Re: Ajuda com ataque por mouse

Qua Dez 12, 2018 7:04 pm

Nessas últimas semanas eu fiz um sistema de inventário para o meu curso, é mais ou menos o que você quer e da para implementar o que você quer nele, mas deu trabalho (foram quase 20 vídeos ao todo)
Cachorro-quente!!!

Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes