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


Coordenadas das balas

3 participantes

Ir para baixo

Coordenadas das balas Empty Coordenadas das balas

Mensagem por vitorfernandes13 Dom 23 Mar 2014, 17:46

Pessoal, estou praticando no GM:S, e resolvi tentar criar um joguinho (meio tosco até) de tiro, mas, não sou bom com coordenas, e as vezes quando aperto X a bala não "sai" ou entao "sai" debaixo do player, se alguem (uma alma muito caridosa) puder me ajudar ...  computador 

Código:

//Step player
//Tiro
if keyboard_check_pressed(ord("X")) {
    if global.municao > 0 {
        if image_index = 1 {
            global.municao -= 1
            
            with(instance_create(x+32,y-38,obj_Bala)) {
                motion_set(0,20)
            }
        } else if image_index = -1 {
            global.municao -= 1
            
            with(instance_create(x+32,y-38,obj_Bala)) {
                motion_set(180,20)            
            }

        }
    }
}

Arquivo do Jogo: https://www.dropbox.com/s/5ihhxq688b6hef0/Tiro.gmz Happy
vitorfernandes13
vitorfernandes13

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios : Coordenadas das balas 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

Coordenadas das balas Empty Re: Coordenadas das balas

Mensagem por Willy Dom 23 Mar 2014, 19:27

Coordenadas... Não existe nenhum segredo nisso.
Para o GM, uma coordenada X representa uma posição horizontal, e uma coordenada Y, uma vertical. Tenho essas duas coordenadas, temos então uma posição (um pixel, pra ser mais especifico).

Certo, como você quer fazer um tiro, você deverá criar o projétil em uma posição relativa à coordenada do player, e você faz isso, usando a variável x e y do próprio jogador.

Mas, conforme eu disse antes, um x e um y formam uma posição, e é ela que importa. Tal posição depende do origin do sprite do jogador. Se ela estiver na posição x0 e y0 (canto superior esquerdo), então deveremos "contar" quantos pixeis horizontais devemos percorrer para chegar até a ponta da arma, e depois, o mesmo com o y, definindo então qual será a posição que a bala deverá ser criada. Se o origin for outro (center, por exemplo), você deverá fazer o processo mais uma vez para achar a posição da bala. Em outras palavras, o que você deve colocar no "instance_create(x+valor,y+valor,obj)" é a distancia entre o origin e a coordenada da ponta da arma (horizontalmente e verticalmente).

Dúvidas é só falar. 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 : Coordenadas das balas 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/

Ir para o topo Ir para baixo

Coordenadas das balas Empty Re: Coordenadas das balas

Mensagem por vitorfernandes13 Dom 23 Mar 2014, 20:07

Willy escreveu:Coordenadas... Não existe nenhum segredo nisso.
Para o GM, uma coordenada X representa uma posição horizontal, e uma coordenada Y, uma vertical. Tenho essas duas coordenadas, temos então uma posição (um pixel, pra ser mais especifico).

Certo, como você quer fazer um tiro, você deverá criar o projétil em uma posição relativa à coordenada do player, e você faz isso, usando a variável x e y do próprio jogador.

Mas, conforme eu disse antes, um x e um y formam uma posição, e é ela que importa. Tal posição depende do origin do sprite do jogador. Se ela estiver na posição x0 e y0 (canto superior esquerdo), então deveremos "contar" quantos pixeis horizontais devemos percorrer para chegar até a ponta da arma, e depois, o mesmo com o y, definindo então qual será a posição que a bala deverá ser criada. Se o origin for outro (center, por exemplo), você deverá fazer o processo mais uma vez para achar a posição da bala. Em outras palavras, o que você deve colocar no "instance_create(x+valor,y+valor,obj)" é a distancia entre o origin e a coordenada da ponta da arma (horizontalmente e verticalmente).

Dúvidas é só falar. blz

De fato, não levei em consideração o origin do player, mas, mesmo assim, está tendo bug, tenho que apertar X varias vezes para que o tiro apareça, e quando o personagem está virado para a esquerda, a bala vai para direita :Pmesmo eu mudando o motion_set dela.
vitorfernandes13
vitorfernandes13

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios : Coordenadas das balas 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

Coordenadas das balas Empty Re: Coordenadas das balas

Mensagem por Willy Dom 23 Mar 2014, 20:40

Nem cheguei a ler o seu código, considerei que sua dúvida era apenas em "ajustar" o lugar por onde sai o tiro.

Bom, agora que olhei seu código:

Você escreveu:tenho que apertar X varias vezes para que o tiro apareça
Isso é porque você usou essa condição:
Código:
if image_index = 1
Com isso, a condição só será true quando o sprite estiver exatamente no frame 1, ou seja, supondo que eu sprite tenha 10 frames, você tem apenas 10% de conseguir disparar. Não vejo lógica nesta condição. Outra coisa, para a esquerda, você usou if image_index = -1. Este "-1" é simplesmente nenhum frame, uma vez que o primeiro é sempre o zero.

Você escreveu:quando o personagem está virado para a esquerda, a bala vai para direita
Isso porque a condição do tiro pra esquerda nunca será atendida justamente por causa do "-1".
Recomendo que apague todo seu código e faça novamente, buscando deixar o código de forma mais clara. Para saber se está claro, basta tentar "ler" co código como se fosse um texto qualquer e ver se o mesmo faz sentido.
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 : Coordenadas das balas 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/

Ir para o topo Ir para baixo

Coordenadas das balas Empty Re: Coordenadas das balas

Mensagem por WellingtonBecker Dom 23 Mar 2014, 20:56

Amigo, aqui tem a solução para seu problema:

https://gmbr.forumeiros.com/t17061-engine-tiro-plataforma
WellingtonBecker
WellingtonBecker

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 09/05/2013
Reputação : 105
Número de Mensagens : 824
Prêmios : Coordenadas das balas 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

Coordenadas das balas Empty Re: Coordenadas das balas

Mensagem por vitorfernandes13 Dom 23 Mar 2014, 21:04

Willy escreveu:Nem cheguei a ler o seu código, considerei que sua dúvida era apenas em "ajustar" o lugar por onde sai o tiro.

Bom, agora que olhei seu código:

Você escreveu:tenho que apertar X varias vezes para que o tiro apareça
Isso é porque você usou essa condição:
Código:
if image_index = 1
Com isso, a condição só será true quando o sprite estiver exatamente no frame 1, ou seja, supondo que eu sprite tenha 10 frames, você tem apenas 10% de conseguir disparar. Não vejo lógica nesta condição. Outra coisa, para a esquerda, você usou if image_index = -1. Este "-1" é simplesmente nenhum frame, uma vez que o primeiro é sempre o zero.

Você escreveu:quando o personagem está virado para a esquerda, a bala vai para direita
Isso porque a condição do tiro pra esquerda nunca será atendida justamente por causa do "-1".
Recomendo que apague todo seu código e faça novamente, buscando deixar o código de forma mais clara. Para saber se está claro, basta tentar "ler" co código como se fosse um texto qualquer e ver se o mesmo faz sentido.

Acho que descobri o erro, na verdade eu usei a função errada sou uma topeira mesmo ¬¬
Na verdade o correto era image_xscale e não image_index, modifiquei aqui, espero que agora dê certo Happy
--
EDIT: Deu certo. Vlw Willy e obg por responder o topico Wellington Happy
vitorfernandes13
vitorfernandes13

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios : Coordenadas das balas 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

Coordenadas das balas Empty Re: Coordenadas das balas

Mensagem por Willy Dom 23 Mar 2014, 21:31

Acostume-se com esse tipo de erro... É mais comum do que imagina! Eu mesmo já passei horas tentando consertar algum bug criando fórmulas mirabolantes, quando na verdade, era um simples detalhe que passou despercebido...

Bom, o tópico está resolvido e o mesmo será trancado. Caso deseje destrancar, envie uma MP para mim ou para outro moderador.

Flws... 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 : Coordenadas das balas 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/

Ir para o topo Ir para baixo

Coordenadas das balas Empty Re: Coordenadas das balas

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