GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Problemas com a caixa de diálogo, ela é pequena e as letras não cabem dentro
por Rukasu777 Ontem à(s) 18:10

» Problemas com particulas
por RastaMaan Dom 12 maio 2024, 17:03

» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08

» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43

» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42


[Resolvido]Arrumar a direção dos tiros

5 participantes

Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty [Resolvido]Arrumar a direção dos tiros

Mensagem por Paulomm32 Dom 16 Ago 2020, 16:38

Ok, agora eu tenho uma dúvida grande, eu estou trabalhando em um jogo de plataforma mas com o sistema de tiro parecido com um top-down, tipo hotline miami onde a arma gira em volta do personagem,  pra isso eu criei um obj separado pras armas, e já consegui fazer a arma rotacionar, mas n consigo fazer com que a arma grude no player. outro problema é fazer os tiros saírem do cano da arma, como posso fazer isso?
Paulomm32
Paulomm32

Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por polosam Dom 16 Ago 2020, 16:47

Poderia compartilhar os códigos?
De um modo geral, sem ver o seu código ainda, digo que no evento create do objeto do tiro ele deverá assumir o mesmo valor de direction do objeto da arma.
polosam
polosam

Games Ranking : Nota A

Notas recebidas : A + B
Data de inscrição : 20/12/2010
Reputação : 120
Número de Mensagens : 749
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4


Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por Paulomm32 Dom 16 Ago 2020, 16:53

polosam escreveu:Poderia compartilhar os códigos?
De um modo geral, sem ver o seu código ainda, digo que no evento create do objeto do tiro ele deverá assumir o mesmo valor de direction do objeto da arma.

isso ta no obj da arma:

image_angle = point_direction(x,y,mouse_x,mouse_y);
var dir = image_angle;

key_tiro = mouse_check_button_pressed(mb_left)

if (key_tiro)
{
var b = instance_create_layer(x,y,"instances",obj_tiro)
b.direction = dir;
b.image_angle = dir;
}

Paulomm32
Paulomm32

Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por polosam Dom 16 Ago 2020, 17:21

Eu escreveria isto no evento create do objeto do tiro:
Código:

direction = objeto_arma.direction;
polosam
polosam

Games Ranking : Nota A

Notas recebidas : A + B
Data de inscrição : 20/12/2010
Reputação : 120
Número de Mensagens : 749
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4


Paulomm32 gosta desta mensagem

Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por Paulomm32 Dom 16 Ago 2020, 17:26

polosam escreveu:Eu escreveria isto no evento create do objeto do tiro:
Código:

direction = objeto_arma.direction;

ok, mas esse código resolve qual dos problemas?
Paulomm32
Paulomm32

Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por polosam Dom 16 Ago 2020, 18:21

Paulomm32 escreveu:
polosam escreveu:Eu escreveria isto no evento create do objeto do tiro:
Código:

direction = objeto_arma.direction;

ok, mas esse código resolve qual dos problemas?

Seria para adequar a direção dos tiros à direção para a qual a arma está apontando. Você não está conseguindo criar os tiros?
polosam
polosam

Games Ranking : Nota A

Notas recebidas : A + B
Data de inscrição : 20/12/2010
Reputação : 120
Número de Mensagens : 749
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4


Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por Paulomm32 Dom 16 Ago 2020, 18:37

polosam escreveu:
Paulomm32 escreveu:
polosam escreveu:Eu escreveria isto no evento create do objeto do tiro:
Código:

direction = objeto_arma.direction;

ok, mas esse código resolve qual dos problemas?

Seria para adequar a direção dos tiros à direção para a qual a arma está apontando. Você não está conseguindo criar os tiros?

sim eu estou conseguindo criar eles mas a arma fica separada do player, ela n fica colada no corpo dele entende?
Paulomm32
Paulomm32

Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por Willy Dom 16 Ago 2020, 19:51

Para fazer com que a arma fique grudada no player, é preciso definir através do player qual é a posição que a arma deve ficar. Mas, antes disso, você deve armazenar em uma variável qual é a instância dessa arma para que futuramente possamos controlar sua posição.

Portanto, no evento create do objeto que segurará a arma:
Código:
arma = instance_create(x,y, obj_arma);
Com isto, temos a referencia da arma guardada na variável "arma".

O segundo passo é fazer com que a arma fique onde deve ficar, ou seja, grudado no player. É um processo bem simples, basta definir a posição da arma baseado no player. Portanto, no step do player:
Código:
arma.x = x;
arma.y = y;
Note que utilizamos a variável criada anteriormente para definir a posição. Recomendo que este código esteja abaixo do código de movimentação do player ou que seja usado no end-step para garantir que a posição da arma seja definida no momento certo, caso contrário, você vai ter a impressão que a arma está "seguido" ao invés de "grudada".

Já temos a arma e ela acompanha o player. Agora, falta apenas fazer com que o tiro saia pela ponta da arma. Para tal, utilizaremos da magia do lengthdir.
Você pode utilizar este código no player ou na arma, o que você achar mais conveniente. Para este exemplo, considere o que o código está controlado na arma. No comando para atirar:
Código:
_x = x + lengthdir_x(8, direction);
_y = y + lengthdir_y(8, direction);

instance_create(_x, _y, obj_bullet);
Não vou explicar como este código funciona por debaixo dos panos, mas, basicamente, ele calcula uma direção pra você. "x" e "y" são as coordenadas da arma. O "8" passado como argumento para o lengthdir define em pixeis, qual é o ponto que você está se referenciado (lembre-se de considerar o eixo do sprite, que, provavelmente, está centralizado).
Ou seja, se seu sprite tem 16px de largura com os eixos centralizados e a ponta da arma está no canto direito, então temos 16 - 8 = 8. Não vou conseguir achar uma maneira muito boa de explicar isso, é confuso até pra mim ( envergonhado ), mas, de todo modo, vá brincando com os valores até encontrar uma configuração que te agrade.

Poupei os detalhes, mas se precisar de mais explicações, basta dar um alô. Se você pesquisar por lengthdir_x aqui no fórum, muito provavelmente você encontrará outros exemplos pra se basear.

Boa sorte! blz
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://willy-gmbr.blogspot.com/

Super Games, polosam, Diemorth e Paulomm32 gostam desta mensagem

Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por Paulomm32 Dom 16 Ago 2020, 21:41

Willy escreveu:Para fazer com que a arma fique grudada no player, é preciso definir através do player qual é a posição que a arma deve ficar. Mas, antes disso, você deve armazenar em uma variável qual é a instância dessa arma para que futuramente possamos controlar sua posição.

Portanto, no evento create do objeto que segurará a arma:
Código:
arma = instance_create(x,y, obj_arma);
Com isto, temos a referencia da arma guardada na variável "arma".

O segundo passo é fazer com que a arma fique onde deve ficar, ou seja, grudado no player. É um processo bem simples, basta definir a posição da arma baseado no player. Portanto, no step do player:
Código:
arma.x = x;
arma.y = y;
Note que utilizamos a variável criada anteriormente para definir a posição. Recomendo que este código esteja abaixo do código de movimentação do player ou que seja usado no end-step para garantir que a posição da arma seja definida no momento certo, caso contrário, você vai ter a impressão que a arma está "seguido" ao invés de "grudada".

Já temos a arma e ela acompanha o player. Agora, falta apenas fazer com que o tiro saia pela ponta da arma. Para tal, utilizaremos da magia do lengthdir.
Você pode utilizar este código no player ou na arma, o que você achar mais conveniente. Para este exemplo, considere o que o código está controlado na arma. No comando para atirar:
Código:
_x = x + lengthdir_x(8, direction);
_y = y + lengthdir_y(8, direction);

instance_create(_x, _y, obj_bullet);
Não vou explicar como este código funciona por debaixo dos panos, mas, basicamente, ele calcula uma direção pra você. "x" e "y" são as coordenadas da arma. O "8" passado como argumento para o lengthdir define em pixeis, qual é o ponto que você está se referenciado (lembre-se de considerar o eixo do sprite, que, provavelmente, está centralizado).
Ou seja, se seu sprite tem 16px de largura com os eixos centralizados e a ponta da arma está no canto direito, então temos 16 - 8 = 8. Não vou conseguir achar uma maneira muito boa de explicar isso, é confuso até pra mim ( envergonhado ), mas, de todo modo, vá brincando com os valores até encontrar uma configuração que te agrade.

Poupei os detalhes, mas se precisar de mais explicações, basta dar um alô. Se você pesquisar por lengthdir_x aqui no fórum, muito provavelmente você encontrará outros exemplos pra se basear.

Boa sorte! blz

cara, muito obrigado mas n deu certo, a parte da arma que cola no player funcionou mas a do lengthdir não.

aqui estão os códigos da arma se precisar:

image_angle = point_direction(x,y,mouse_x,mouse_y);
var dir = image_angle;

key_tiro = mouse_check_button_pressed(mb_left)

if (key_tiro)
{
var b = instance_create_layer(x,y,"instances",obj_tiro)
b.direction = dir;
b.image_angle = dir;
}
Paulomm32
Paulomm32

Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por Diemorth Seg 17 Ago 2020, 03:33

O código que o @Willy disponibilizou parece suprir isso... Faltou você ajustar só.

No código da arma é onde você vai colocar o terceiro bloco de código, deve ficar algo assim:

Código:
image_angle = point_direction(x, y, mouse_x, mouse_y);
var dir = image_angle;

key_tiro = mouse_check_button_pressed(mb_left)

if (key_tiro){
    var _x = x + lengthdir_x(8, direction);
    var _y = y + lengthdir_y(8, direction);

    var b = instance_create_layer(_x, _y, "instances", obj_tiro);
    b.image_angle = dir;
    b.direction = dir;
}

Estou supondo que o problema seja esse com base no que você falou, se precisar ajustar ou não estiver funcionando, ajuda se você puder detalhar mais ou trouxer imagens.
Diemorth
Diemorth

Games Ranking : Sem avaliações

Data de inscrição : 26/01/2020
Reputação : 61
Número de Mensagens : 208
Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 2

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Unity
  • Java
  • Web Tecnology
  • Unreal
  • Javascript
  • RPG Maker
  • C ou C++
  • Outros


https://diemorth.github.io/diemorth

Paulomm32 gosta desta mensagem

Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por Paulomm32 Seg 17 Ago 2020, 11:46

Diemorth escreveu:
O código que o @Willy disponibilizou parece suprir isso... Faltou você ajustar só.

No código da arma é onde você vai colocar o terceiro bloco de código, deve ficar algo assim:

Código:
image_angle = point_direction(x, y, mouse_x, mouse_y);
var dir = image_angle;

key_tiro = mouse_check_button_pressed(mb_left)

if (key_tiro){
    var _x = x + lengthdir_x(8, direction);
    var _y = y + lengthdir_y(8, direction);

    var b = instance_create_layer(_x, _y, "instances", obj_tiro);
    b.image_angle = dir;
    b.direction = dir;
}

Estou supondo que o problema seja esse com base no que você falou, se precisar ajustar ou não estiver funcionando, ajuda se você puder detalhar mais ou trouxer imagens.

cara, consegui arrumar usando y_offset, mas como a arma segue o mouse quando eu mecho a direção parece que muda e ele sai por um cantos diferentes.
Paulomm32
Paulomm32

Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por saim Seg 17 Ago 2020, 14:06

seu code escreveu:
Código:
if (key_tiro){
    var _x = x + lengthdir_x(8, direction);
    var _y = y + lengthdir_y(8, direction);

    var b = instance_create_layer(_x, _y, "instances", obj_tiro);
    b.image_angle = dir;
    b.direction = dir;
}
Troque o "direction" no "lengthdir" por "dir". Dentro do código, vai fazer mais sentido.
"direction" é uma variável nativa, não vai dar erro por mais que não esteja definida. Pro tiro sair da ponta da arma que aponta pro mouse, você tem que usar o mesmo ângulo que aponta pro mouse.


Última edição por saim em Seg 17 Ago 2020, 14:08, editado 1 vez(es) (Motivo da edição : errata)
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Super Games, Diemorth e Paulomm32 gostam desta mensagem

Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por Diemorth Seg 17 Ago 2020, 14:13

Realmente @saim! Acabou passando despercebido, obrigado por pontuar isso.

Paulomm32 escreveu:cara, consegui arrumar usando y_offset, mas como a arma segue o mouse quando eu mecho a direção parece que muda e ele sai por um cantos diferentes.
Só pra complementar, é bom lembrar que isso vai sair com a posição relativa ao pivô da sprite, ou seja, tenha em mente que isso vai pegar o ponto x e y da sprite da arma pra usar como base na hora de calcular a posição do _x e _y, que é onde o obj_tiro vai ser criado.
Diemorth
Diemorth

Games Ranking : Sem avaliações

Data de inscrição : 26/01/2020
Reputação : 61
Número de Mensagens : 208
Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 2

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Unity
  • Java
  • Web Tecnology
  • Unreal
  • Javascript
  • RPG Maker
  • C ou C++
  • Outros


https://diemorth.github.io/diemorth

Super Games e Paulomm32 gostam desta mensagem

Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por Paulomm32 Seg 17 Ago 2020, 14:46

Ok, muito obrigado a todo mundo que ajudou Very Happy
Paulomm32
Paulomm32

Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios : [Resolvido]Arrumar a direção dos tiros Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[Resolvido]Arrumar a direção dos tiros Empty Re: [Resolvido]Arrumar a direção dos tiros

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos