Condição sendo ignorada

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Windows Condição sendo ignorada

Mensagem por MrGuliarte em Dom 04 Jan 2015, 16:52

Olá a todos. Sou iniciante no Game Maker, e estou fazendo, para treinar, um level simples de uma batalha com um boss baseado no tutorial scrolling shooter, de Mark Overmars. Ele tem essa cara:

" />

Eu controlo o avião de baixo, e estou tentando construir uma "IA" simples para o outro avião, de forma que:

- Se eu estiver atirarando nele, ele desvia;
- Caso contrário, ele vem até minha direção e atira em mim.

O meu código (no avião inimigo) está desta forma:

A velocidade horizontal do avião é 0? Se sim            
Há uma bala no cenário (atirada pelo meu avião)?Se sim
Esta bala está próxima? Se sim
Este avião está próximo da lateral direita? Se sim
Ande para a esquerda até o Alarm0 tocar
                                                        Se não
Ande para a direita até o Alarm0 tocar

" />

O meu problema é o seguinte: O 1º if ("A velocidade horizontal do avião é 0?") está sendo ignorado. Isto significa que, mesmo quando o avião está andando para a direita, caso a sua variável X alcance o limite que eu estipulei, ele entra no if e volta pra esquerda. Outros testes comprovaram que ele entra nesta condição mesmo quando o hspeed do avião inimigo é maior do que 0.

Curiosidade:Se eu apenas testar a velocidade do meu avião imediatamente antes de mudá-la (imagem abaixo), o código funciona como eu espero (se ele está indo para uma direção, não muda). Wtf?



Se alguém puder me ajudar, agradeço!

MrGuliarte

Número de Mensagens : 9
Data de inscrição : 11/07/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Windows Re: Condição sendo ignorada

Mensagem por MrGuliarte em Dom 04 Jan 2015, 16:54

Repostando as imagens, caso alguém não as esteja visualizando:

1ª imagem:


MrGuliarte

Número de Mensagens : 9
Data de inscrição : 11/07/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Windows Re: Condição sendo ignorada

Mensagem por MrGuliarte em Dom 04 Jan 2015, 16:55

2ª imagem:
[img][/img]

MrGuliarte

Número de Mensagens : 9
Data de inscrição : 11/07/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Windows Re: Condição sendo ignorada

Mensagem por Sewer Crawler em Seg 05 Jan 2015, 01:41

Não entendi bem o que vc precisa. Eu usei só D&D apenas em uns breakouts, há muito tempo.
Te aconselho a pular essa parte e ir direto pra GML.
Com certeza vc teria mais auxílio. Aposto que a maioria torce o nariz pra D&D, assim  como eu.
Quando aparecia algo que eu sabia fazer em D&D mas não sabia como colocar em código, eu usava um programa (feito no GM) chamado GML Buddy.  
Se te interessar começar a usar mais a GML em vez
de apenas D&D, Tenho algumas engines e tutoriais de SHMUP (não querendo dizer que sou expert no assunto), e posso te mandar uns links.
GML Buddy e DnD converter:
https://app.box.com/s/gpb6opjjt8laz8bgf7bu
Easy GML Tutorial:
https://app.box.com/s/lpfvu920blpfks00d1f5
Quanto às imagens não terem aparecido, vc não deve ter posto o link entre as tags corretamente. Percebi isso por que estão aparecendo alguns caracteres e "tags" junto às imagens.

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Windows Re: Condição sendo ignorada

Mensagem por JoaoVanBlizzard em Seg 05 Jan 2015, 10:16

tenta colocar if x < 0 , as vezes os valores que voce coloca pode não gerar um 0 absoluto, então se decretar que o valor será menor que zero o avião se obrigrará a parar após esse valor

JoaoVanBlizzard

Ranking : Nota B
Número de Mensagens : 1925
Idade : 38
Data de inscrição : 04/03/2012
Notas recebidas : B+B
Reputação : 144
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Windows Re: Condição sendo ignorada

Mensagem por MrGuliarte em Seg 05 Jan 2015, 14:38

Sewer Crawler

Obrigado pelas dicas! Mas eu realmente fiquei encucado sobre o porquê que iso não está funcionando rs. Esse código bem chumbreguinha é pra fazer com que o avião inimigo desvie das balas; o x aqui é que, sele ele estiver perto da lateral direita, ele tem que ir pra esquerda, ou some da tela; caso contrário, ele desvia pra direita mesmo.

JoaoVanBlizzard

Não entendi bem...você diz hspeed < 0? A minha ideia é fazer com que ele só desvie se estiver parado...logo tem de ser hspeed = 0, certo??

MrGuliarte

Número de Mensagens : 9
Data de inscrição : 11/07/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Windows Re: Condição sendo ignorada

Mensagem por Sewer Crawler em Seg 05 Jan 2015, 16:37

Aqui tem um  1945 em GML. Mas é diferente do DnD, visto que não usa view, a room é menor, e os inimigos vão sendo criados (spawning).
http://www.box.net/shared/s3ww6t4gs4

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Windows Re: Condição sendo ignorada

Mensagem por Conteúdo patrocinado Hoje à(s) 00:27


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum