Entrar
Últimos assuntos
» Problema ao entrar por uma porta e voltar por elapor 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
Página 1 de 1
Coordenadas das balas
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 ...
Arquivo do Jogo: https://www.dropbox.com/s/5ihhxq688b6hef0/Tiro.gmz
- 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
vitorfernandes13- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Coordenadas das balas
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.
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.
Re: Coordenadas das balas
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.
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- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Coordenadas das balas
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:
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.
Bom, agora que olhei seu código:
Isso é porque você usou essa condição:Você escreveu:tenho que apertar X varias vezes para que o tiro apareça
- Código:
if image_index = 1
Isso porque a condição do tiro pra esquerda nunca será atendida justamente por causa do "-1".Você escreveu:quando o personagem está virado para a esquerda, a bala vai para direita
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.
Re: Coordenadas das balas
Amigo, aqui tem a solução para seu problema:
https://gmbr.forumeiros.com/t17061-engine-tiro-plataforma
https://gmbr.forumeiros.com/t17061-engine-tiro-plataforma
WellingtonBecker- Games Ranking :
Notas recebidas : D
Data de inscrição : 09/05/2013
Reputação : 105
Número de Mensagens : 824
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Coordenadas das balas
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:Isso é porque você usou essa condição:Você escreveu:tenho que apertar X varias vezes para que o tiro apareçaCom 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.
- Código:
if image_index = 1
Isso porque a condição do tiro pra esquerda nunca será atendida justamente por causa do "-1".Você escreveu:quando o personagem está virado para a esquerda, a bala vai para direita
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
Na verdade o correto era image_xscale e não image_index, modifiquei aqui, espero que agora dê certo
--
EDIT: Deu certo. Vlw Willy e obg por responder o topico Wellington
vitorfernandes13- Games Ranking :
Notas recebidas : C
Data de inscrição : 11/01/2014
Reputação : 11
Número de Mensagens : 284
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Coordenadas das balas
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...
Bom, o tópico está resolvido e o mesmo será trancado. Caso deseje destrancar, envie uma MP para mim ou para outro moderador.
Flws...
Tópicos semelhantes
» coordenadas
» condição de coordenadas
» Mapa coordenadas ?
» Criar obj em coordenadas de uma variavel com id de instância
» Duvida criar objeto em coordenadas aleatorias
» condição de coordenadas
» Mapa coordenadas ?
» Criar obj em coordenadas de uma variavel com id de instância
» Duvida criar objeto em coordenadas aleatorias
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|