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
» 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

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21


Preciso de ajuda com armas e ângulos

2 participantes

Ir para baixo

Preciso de ajuda com armas e ângulos Empty Preciso de ajuda com armas e ângulos

Mensagem por Mentos e Coca-cola Qua 06 Jun 2018, 17:40

[EDIT] Vou avisar no começo pois esqueci e é importante, a versão que uso é Game Maker 8.0

Olá pessoal, estou com um problema que já fiz de tudo pra resolver e não consegui chegar em nada, realmente estou confuso em relação a isso, procurei algumas engines e tutoriais aqui no forum mas tudo que eu encontrei está fora do ar já, enfim, estou fazendo um jogo de tiro onde o personagem fica PARADO, nele tem dois braços, um de cada lado, que giram conforme a posição do mouse, essa parte da programação já fiz, não é com isso que preciso de ajuda, primeiro vou colocar uma imagem e em baixo a legenda com meus problemas.

Preciso de ajuda com armas e ângulos Mmg2a0e

Sobre Arma 1 e Arma 2: eu estou tentando fazer com que toda vez que eu realize o clique global, saia um tiro de cada arma, um por vez, com um certo delay, mas preciso de um código que saia primeiro de uma arma e depois da outra, na minha cabeça parece tão simples esse código mas de jeito nenhum eu to conseguindo fazer com que saia um de cada vez, alguém poderia me ajudar com isso?

Sobre pontos vermelhos na ponta de cada arma: também procurei e não achei nada relacionado, os pontos de origem tão em X=0 e Y=6 (o Y é a metade da sprite), esses pontos de origem é o que fazem o ângulo que o objeto ta em relação ao mouse ficar mais bonito, o problema é que na hora de sair o tiro, ele sai todo bugado, acho que talvez pelo fato do image_angle, não sei, eu gostaria de fazer com que o tiro saísse precisamente do ponto vermelho, independente do ângulo que ele tá, é possível fazer isso sem alterar a origem?

Obrigado pela atenção de quem leu até aqui. Razz
Mentos e Coca-cola
Mentos e Coca-cola

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 30/06/2010
Reputação : 21
Número de Mensagens : 642
Prêmios : Preciso de ajuda com armas e ângulos 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

Ir para o topo Ir para baixo

Preciso de ajuda com armas e ângulos Empty Re: Preciso de ajuda com armas e ângulos

Mensagem por Convidado Qua 06 Jun 2018, 19:40

A 1° questão você pode resolver usando uma simples variável, aliás, a massiva maioria das situações podem ser resumidas a controlar estados de um valor/etc.

No caso é só iniciar com um valor e então ficar alternando a cada tiro, ex:
armaMao = 1; // mão direita

Na ação do tiro
if armaMao == 1 {
armaMao = 2; // mão esquerda
--código do disparo no lado direito--
} else {
armaMao = 1; // mão direita
--código do disparo no lado esquerdo--
}

Já em relação a "ancoragem" dos tiros, as funções lengthdir_x e lengthdir_y servem pra estabelecer um vetor com base no ângulo e distância.

O valor do ângulo você pode obter usando a mesma mecânica que faz o braço apontar pro mouse. A distância é o comprimento do braço (ou a distância entre o eixo de rotação do mesmo e o local em que você quer que a arma fique), em pixels.

Digamos que esse comprimento seja 32px, então a ancoragem das armas seria:
Evento STEP
arma_esq_x = (x_do_eixo_do_braço_esq + lengthdir_x(32, angulo_dos_braços));
arma_esq_y = (y_do_eixo_do_braço_esq + lengthdir_y(32, angulo_dos_braços));
arma_dir_x = (x_do_eixo_do_braço_dir + lengthdir_x(32, angulo_dos_braços));
arma_dir_y = (y_do_eixo_do_braço_dir + lengthdir_y(32, angulo_dos_braços));

Dai é só usar essas coordenadas na ação de criação dos objetos disparados, ex:
Evento do tiro
if armaMao == 1 {
armaMao = 2; // mão esquerda
instance_create(arma_dir_x, arma_dir_y, objeto_tiro);
} else {
armaMao = 1; // mão direita
instance_create(arma_esq_x, arma_esq_y, objeto_tiro);
}

E já antecipando uma possível outra dúvida sua... pra fazer o tiro ir na referida direção, armazene o ID da instância pra facilitar, ex:
Evento do tiro
var _id; // variável temporária
if armaMao == 1 {
armaMao = 2; // mão esquerda
_id = instance_create(arma_dir_x, arma_dir_y, objeto_tiro);
} else {
armaMao = 1; // mão direita
_id = instance_create(arma_esq_x, arma_esq_y, objeto_tiro);
}

_id.direction = valor_do_angulo_dos_braços;

Basta que o objeto da bala possua um valor de "speed" no create pra que o objeto se mova usando esses atributos nativos do GM (direction e speed).
avatar
Convidado
Convidado


Ir para o topo Ir para baixo

Preciso de ajuda com armas e ângulos Empty Re: Preciso de ajuda com armas e ângulos

Mensagem por Mentos e Coca-cola Qua 06 Jun 2018, 23:09

Sobre os tiros, funcionou certinho, mas o segundo eu não entendi muito bem, bem, eu tenho 2 objetos que são os braços, neles eu só tenho o código de ângulo, e eu tenho um objeto controlador que checa o clique, onde eu coloquei o primeiro código que você me ajudou ali, mas não entendi muito bem onde empregar o segundo código, específicamente aquele step ali, o arma_esq_x(etc), são variaveis? e o x_do eixo[...] seria o que? e o angulo_dos_braços? não entendi muito bem, se puder ser mais claro agradeço.
Mentos e Coca-cola
Mentos e Coca-cola

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 30/06/2010
Reputação : 21
Número de Mensagens : 642
Prêmios : Preciso de ajuda com armas e ângulos 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

Ir para o topo Ir para baixo

Preciso de ajuda com armas e ângulos Empty Re: Preciso de ajuda com armas e ângulos

Mensagem por Convidado Qui 07 Jun 2018, 09:46

Sim, você precisa de variáveis pra armazenar aqueles pontos onde estarão ancoradas as armas, e esses pontos devem ser "atualizados" continuamente, dai o evento STEP.

o "eixo" dos braços é a coordenada onde eles giram, ou seja, o ponto x e y em que esses objetos estão na room.

Suponhamos que seu boneco esteja no centro inferior da tela e que esta tenha 640px por 480px. Os braços estariam em algo como 300,400 (esq) e 340,400 (dir).

No evento STEP o lengthdir estaria calculando a rotação dessas coordenadas, ex:
(obs. pra efeito vamos considerar 16px de comprimento no braço)

arma_esq_x = (300 + lengthdir_x(16, sua_var_de_angulo));
arma_esq_y = (400 + lengthdir_y(16, sua_var_de_angulo));

arma_dir_x = (340 + lengthdir_x(16, sua_var_de_angulo));
arma_dir_y = (400 + lengthdir_y(16, sua_var_de_angulo));

Se você está trabalhando com um objeto controlador, então nos objetos das armas basta pegar essas variáveis, ex:

Evento STEP da arma esquerda
x = nome_do_objeto_controlador.arma_esq_x;
y = nome_do_objeto_controlador.arma_esq_y;
image_angle = nome_do_objeto_controlador.sua_var_de_angulo;

Evento STEP da arma direita
x = nome_do_objeto_controlador.arma_dir_x;
y = nome_do_objeto_controlador.arma_dir_y;
image_angle = nome_do_objeto_controlador.sua_var_de_angulo;
avatar
Convidado
Convidado


Ir para o topo Ir para baixo

Preciso de ajuda com armas e ângulos Empty Re: Preciso de ajuda com armas e ângulos

Mensagem por None Sex 08 Jun 2018, 08:06

lengthdir é uma função tão mágica.

O Step Event fez dois vídeos MUITO legais justamente sobre ela (curiosamente um deles é muito similar ao que você quer, embora o outro seja mais divertido), os vídeos são em inglês (não sei se é um problema), mas são muitos legais.

Link do canal dele (só tirar os espaços).
https:// www .youtube .com/channel/UCJeEe1CjKkblOqMVsBjumIA
None
None

Games Ranking : Sem avaliações

Data de inscrição : 01/06/2018
Reputação : 0
Número de Mensagens : 21
Prêmios : Preciso de ajuda com armas e ângulos 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

Ir para o topo Ir para baixo

Preciso de ajuda com armas e ângulos Empty Re: Preciso de ajuda com armas e ângulos

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

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