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
» player não consegue andar
por 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


[Resolvido]Ajuda com tower defense

3 participantes

Ir para baixo

[Resolvido]Ajuda com tower defense Empty [Resolvido]Ajuda com tower defense

Mensagem por Mentos e Coca-cola Ter 09 Ago 2011, 09:28

Bom pessoal(¬¬), eu e meu amg estamos no começo de um jogo de Defender A Base, mais eu tow querendo saber como eu faria p que:
se o obj_inimigo estiver 200 pixels ou menos, perto do obj_gun, que o obj_gun atire o obj_tiro, mais que saia só daquele obj_gun que o obj_inimigo está perto, porque tem mais obj_gun na room, alguem entendeu alguma coisa Razz ?

PS: o jogo é TOP-DOWN(acho eu)Razz

Razz:P



Última edição por Mentos e Coca-cola em Ter 09 Ago 2011, 16:04, editado 1 vez(es)
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 : [Resolvido]Ajuda com tower defense 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

[Resolvido]Ajuda com tower defense Empty Re: [Resolvido]Ajuda com tower defense

Mensagem por Markituh Ter 09 Ago 2011, 10:22

Há uma função que checa a distância (em pixels) entre dois objetos. Ela é distance_to_object e seu único argumento é o objeto para checar a distância. Então, no Step objeto que atira (obj_gun):
Código:
if pode_atirar and distance_to_object(obj_inimigo) <= 200
/* Se pode atirar for igual a true(a comparação é implícita, mas há) e a distância entre mim e o objeto inimigo for menor ou igual a 200 */
{
instance_create(x,y,obj_tiro) // Cria o tiro
pode_atirar = false
alarm[0] = 30  // Recarrega o tiro
}
A variável "pode_atirar" é básica, caso contrário seriam criados um monte de obj_tiro. O alarm[0] é básico também, segue a mesma linhagem da variável. Sobre haver vários objetos:
GM Help escreveu:distance_to_object(obj) Returns the distance of the instance to the nearest instance of object obj. (If the instance or object does not have a sprite or mask, the result of the function is undefined.)
A função retorna a distância da instância em que o código está para a instância mais próxima, ou seja, a que estiver na frente, do objeto "obj". O tio Mark pensou nisso também tongue

Nota: Há um trecho que diz: "If the distance or object..." - esse trecho quer dizer que se a instância não tem uma sprite ou mask, o resultado que a função vai retornar é indefinido.


Última edição por Markituh em Ter 09 Ago 2011, 10:24, editado 2 vez(es) (Motivo da edição : Nota)
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : [Resolvido]Ajuda com tower defense Empty

Medalhas x 0 Tutoriais x 1 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

[Resolvido]Ajuda com tower defense Empty Re: [Resolvido]Ajuda com tower defense

Mensagem por Mentos e Coca-cola Ter 09 Ago 2011, 10:30

foi mal mais não funcionou, será que alguem topa consertar a engine ?
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 : [Resolvido]Ajuda com tower defense 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

[Resolvido]Ajuda com tower defense Empty Re: [Resolvido]Ajuda com tower defense

Mensagem por saim Ter 09 Ago 2011, 11:25

Deveria funcionar. O que deu errado?
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : [Resolvido]Ajuda com tower defense Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Ajuda com tower defense Empty Re: [Resolvido]Ajuda com tower defense

Mensagem por Mentos e Coca-cola Ter 09 Ago 2011, 11:28

os inimigos chegam perto mais nada acontece, eu tembém achei estranho
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 : [Resolvido]Ajuda com tower defense 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

[Resolvido]Ajuda com tower defense Empty Re: [Resolvido]Ajuda com tower defense

Mensagem por saim Ter 09 Ago 2011, 11:57

Algumas sugestões do que pode estar errado:
- pode_atirar pode estar com o valor “false” (o Markituh não pôs no texto, mas você deve usar o alarm pra resetar a variável pra “true”)
- a distância pode estar pequena (embora eu ache que 200 sejam suficientes). Tente aumentar pra 5000, só pra testar.
- o inimigo pode não ser chamado de obj_inimigo. Se houver diferença nos nomes, corrija.
- o tiro está sendo criado sem velocidade nenhum, dando a impressão que ele não está lá. Mostre, em algum debug, o valor de "instance_number(obj_tiro)".
Se não for nenhuma dessas possibilidades, volte que pensaremos em algo novo. Se alguma se confirmar, a correção é simples.

Edit:
de fato, não está funcionando quando eu ponho objetos sem sprites - tanto a torre quanto o inimigo. Porém, ao definir uma sprite e uma mask pra esses objetos, ele passa a criar os tiros.
O código que estou usando é:
Código:
if (podeAtirar==true && distance_to_object(obj_inimigo)<=distMin){//point_distance(x, y, obj_inimigo.x, obj_inimigo.y)<=distMin){//
   var vitima;
   vitima=collision_circle(x, y, distMin, obj_inimigo, 1, 1);
   with (instance_create(x, y, obj_bala)){
      dir=point_direction(other.x, other.y, obj_inimigo.x, obj_inimigo.y);//vitima.x, vitima.y);
      }
   alarm[0]=cadencia;
   podeAtirar=false;
   }
os códigos em comentário são testes que eu usei até fazer funcionar. Eles também funcionam, em muitos casos, mas podem gerar alguns bugs, principalmente o "vitima.x, vitima.y);". Parece que a distância entre os objetos pode ser menor que distMin sem que a collision_circle retorne "true".
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : [Resolvido]Ajuda com tower defense Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Resolvido]Ajuda com tower defense Empty Re: [Resolvido]Ajuda com tower defense

Mensagem por Mentos e Coca-cola Ter 09 Ago 2011, 16:03

resolvido, muito obrigado ae, pode trancar o tópico
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 : [Resolvido]Ajuda com tower defense 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

[Resolvido]Ajuda com tower defense Empty Re: [Resolvido]Ajuda com tower defense

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