Entrar
Últimos assuntos
» Preciso de ajudapor 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
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Qui 18 Abr 2024, 18:28
» 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
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
Physics, bala na direção do player?
2 participantes
Página 1 de 1
Physics, bala na direção do player?
Eae pessoal, beleza?
É o seguinte, estou com um projeto em desenvolvimento usando comandos da física nativa do gamemaker, minha versão é GameMaker: Studio standard.
o jogo é um clássico de naves e como todos jogos de nave, tem sempre aquela nave clichê que sempre da um tiro na direção da nave do jogador para destruí-la.
Então, crio a nave inimiga e crio o tiro da nave mas o máximo que consigo fazer é a bala
ir em uma unica direção x ou y com os comandos 'phy_speed_x' e' phy_speed_y'.
No caso a que fica melhor já que a minha nave esta na vertical é:
Step da bala da nave inimiga:
Qual é a maneira que existe, usando physics, para que a bala assim que criada no jogo (assim que a nave inimiga atirar) vá em direção do player? não quero que a bala siga-o (o player vai pra cima e a bala segue, o player vai para baixo e a mesma bala continua o seguindo)
simplesmente quero que a nave atire na direção do jogador.
Caso alguma duvida sobre o jogo, basta deixar no comentario que atualizarei a pergunta.
Obrigado a todos, agradeço desde já!
É o seguinte, estou com um projeto em desenvolvimento usando comandos da física nativa do gamemaker, minha versão é GameMaker: Studio standard.
o jogo é um clássico de naves e como todos jogos de nave, tem sempre aquela nave clichê que sempre da um tiro na direção da nave do jogador para destruí-la.
Então, crio a nave inimiga e crio o tiro da nave mas o máximo que consigo fazer é a bala
ir em uma unica direção x ou y com os comandos 'phy_speed_x' e' phy_speed_y'.
No caso a que fica melhor já que a minha nave esta na vertical é:
Step da bala da nave inimiga:
- Código:
phy_speed_y = +8
Qual é a maneira que existe, usando physics, para que a bala assim que criada no jogo (assim que a nave inimiga atirar) vá em direção do player? não quero que a bala siga-o (o player vai pra cima e a bala segue, o player vai para baixo e a mesma bala continua o seguindo)
simplesmente quero que a nave atire na direção do jogador.
Caso alguma duvida sobre o jogo, basta deixar no comentario que atualizarei a pergunta.
Obrigado a todos, agradeço desde já!
Katerp- Games Ranking :
Notas recebidas : D
Data de inscrição : 04/01/2014
Reputação : 6
Número de Mensagens : 81
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Physics, bala na direção do player?
Trigonometria!
GameMaker possui duas funções que vão facilitar sua vida:
lengthdir_x e lengthdir_y; Você coloca a direção e o distancia nas duas funções e ele vai retornar o valor correto para cada eixo.
Outra opção pode ser usar a função physics_apply_local_impulse.
Recomendo que de uma olhada no manual dessas 3 funções, e da physics_apply_impulse também para um melhor entendimento.
Lembre-se também, que na engine de física, o eixo Y funciona como o plano cartesiano que você aprendeu na escola, e não em em pixels (como normalmente é no GameMaker). Isso significa que você vai ter que multiplicar o valor do eixo y por -1.
GL
GameMaker possui duas funções que vão facilitar sua vida:
lengthdir_x e lengthdir_y; Você coloca a direção e o distancia nas duas funções e ele vai retornar o valor correto para cada eixo.
Outra opção pode ser usar a função physics_apply_local_impulse.
Recomendo que de uma olhada no manual dessas 3 funções, e da physics_apply_impulse também para um melhor entendimento.
Lembre-se também, que na engine de física, o eixo Y funciona como o plano cartesiano que você aprendeu na escola, e não em em pixels (como normalmente é no GameMaker). Isso significa que você vai ter que multiplicar o valor do eixo y por -1.
GL
Re: Physics, bala na direção do player?
cara me da mais uma ajudinha..
eu li a respeito dos comandos que você falou no manual da GM, mas ainda não sei como aplica-las no jogo.
No Step do meu inimigo para criar a bala eu usei o seguinte código:
já na bala (obj_tiro2)
no seu Step, ainda sem usar os codigos que você falou:
Pode me dizer aonde eu mudo para que a bala o siga?
eu li a respeito dos comandos que você falou no manual da GM, mas ainda não sei como aplica-las no jogo.
No Step do meu inimigo para criar a bala eu usei o seguinte código:
- Código:
if atirou = false
{
alarm[0] = choose(20,30)
atirou = true
}
- Código:
instance_create(x,y+15,obj_tiro2)
atirou = false
já na bala (obj_tiro2)
no seu Step, ainda sem usar os codigos que você falou:
- Código:
phy_speed_y =+8
Pode me dizer aonde eu mudo para que a bala o siga?
Katerp- Games Ranking :
Notas recebidas : D
Data de inscrição : 04/01/2014
Reputação : 6
Número de Mensagens : 81
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Physics, bala na direção do player?
Ao invés de aumentar a velocidade da bala a cada step, é muito mais simples você aplicar um impulso na bala AO CRIAR ELA.... Mais ou menos, vou explicar isso durante o código
Exemplo:
Hora dagambiarra criatividade:
No create da bala, criaremos uma variavel setada em true;
E agora no step, caso apply_speed seja verdadeiro, aplicaremos a força, e colocamos apply_speed em falso, para que isso não aconteça de novo.
Acho que é isso. Se você tiver algum problema, pode me chamar no Discord (Jaqueta#7987) que lá eu consigo te ajudar na hora.
Exemplo:
- Código:
atirou = false; //resetamos o alarme
var bullet; //Criamos uma variavel temporaria
bullet=instance_create(x,y+15,obj_tiro2); //Instance create retorna o ID unico do objeto, assim você pode aplicar código especifico para este objeto a partir de outros.
with(bullet) //usar o "with" aqui, é como se eu estivesse escrevendo no create da bala, mas a partir do inimigo.
{
//Se este fosse um objeto normal do GameMaker, bastava nós definir a velocidade e a direção do objeto, simples. Mas como estamos usando a LiquidFun, precisaremos usar um pouco de criatividade. O "problema" de usar WITH no create, é que o código vai ser executado ANTES do create do objeto. Ou seja. se aplicarmos uma força na bala antes de definir a fixture e etc... iremos ter um erro porque a bala ainda não foi criada. Então o que faremos é: Definir duas variaveis proprias para nossa bala, direcao e forca, e depois NA BALA aplicaremos isso.
bullet_direction=point_direction(x,y,obj_player.x,obj_player.y) //Direcao da bala até o player, claro que isso deve ser melhorado depois para evitar bugs.
bullet_speed=15 //A velocidade da bala
}
Hora da
No create da bala, criaremos uma variavel setada em true;
- Código:
apply_speed=true; //Isso vai determinar se a velocidade deve ser aplicada
E agora no step, caso apply_speed seja verdadeiro, aplicaremos a força, e colocamos apply_speed em falso, para que isso não aconteça de novo.
- Código:
if (apply_speed)
{
apply_speed=false; //Não precisamos mais aplicar força
var xspeed,yspeed; //Criamos duas variaveis temporarias para a velocidade do eixo X e Y;
xspeed=lengthdir_x(bullet_speed,bullet_direction); //Definimos a velocidade para caida eixo
yspeed=lengthdir_y(bullet_speed,bullet_direction);
physics_apply_impulse(x,y,x+xspeed,y+lengthdir_y(bullet_speed,bullet_direction)); //E finalmente, aplicamos a força.
}
Acho que é isso. Se você tiver algum problema, pode me chamar no Discord (Jaqueta#7987) que lá eu consigo te ajudar na hora.
Re: Physics, bala na direção do player?
não.. ainda não deu, a bala está indo na direção de uns 190 graus, totalmente pro lado direito da tela ao invés de ir na direção do player, ela está bem rápida mas a velocidade dela não é problema, de qualquer modo, te chamei no discord pra poder conversar, se souber o que acontesse e querer colocar aqui no forum mesmo não tem problema.
Uma imagem do que está acontecendo:
Uma imagem do que está acontecendo:
Katerp- Games Ranking :
Notas recebidas : D
Data de inscrição : 04/01/2014
Reputação : 6
Número de Mensagens : 81
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Criação de Bala não funciona em uma única direção
» bala em colisao com player mudar para sprite de explosao
» Como eu faço para a bala estar relativa ao player?
» Player atirar na sua direçao !
» Direção player = Sprite inimigo
» bala em colisao com player mudar para sprite de explosao
» Como eu faço para a bala estar relativa ao player?
» Player atirar na sua direçao !
» Direção player = Sprite inimigo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|