Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
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