View e inimigos parados

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

View e inimigos parados

Mensagem por Mestre Rá em Seg 18 Ago 2014, 09:13

Peço desculpa caso essa pergunta tenha sido feita, eu quero fazer com que o inimigo somente se movimente se estiver na view, se estiver fora ele fica parado.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por AxeInLine em Seg 18 Ago 2014, 09:59

Olá, eu ia sugerir que você usasse o evento "outside of view", mas ia complicar ainda mais sua situação, então vou explicar outra forma...
Primeiro, vamos criar uma variável, chamemos-a de "limite" e coloquemos ela como false, ficando assim o create do inimigo:
Código:
limite = false;
Claro que pode ter outra coisa, é só um exemplo...
Dentro do step, coloque isto:
Código:
if (x<view_xview[0]) || (x>view_wview[0])//se o x deste objeto for maior que o x final da view0 ou for menor que x inicial da view0(acho, pode ser que eu esteja trocando os sinais)
{
if (y<view_yview[0]) || (y>view_hview[0])// mesma coisa que acima, mas mudando para o eixo y.
{
limite = true;
}
}
else
{
limite=false;
Agora é só colocar um if antes das ações pedindo para que limite seja false, entendeu?
Espero ter ajuda...(algumas coisas podem estar erradas, sem tempo para testar).


Última edição por AxeInLine em Seg 18 Ago 2014, 17:21, editado 2 vez(es) (Razão : errei d= (2))

AxeInLine

Número de Mensagens : 211
Idade : 14
Data de inscrição : 23/03/2014
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Seg 18 Ago 2014, 10:15

Desculpa ser chato de novo, mas não entendi esse if.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por AxeInLine em Seg 18 Ago 2014, 10:20

Qual if? Este do código que eu passei ou a de que estou pedindo aqui?:
AxeInLine escreveu:Agora é só colocar um if antes das ações pedindo para que limite seja false, entendeu?
Se for esta de cima, era isso aqui que eu queria dizer:

Código:
if (limite = false)
{
//ação
}

Entendeu agora? Dai aonde eu coloquei "//ação" você muda pela ação que aconteceria normalmente dentro da view...
Caso for o outro código por favor me diga...

AxeInLine

Número de Mensagens : 211
Idade : 14
Data de inscrição : 23/03/2014
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Seg 18 Ago 2014, 10:52

beleza valeu cara.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Isaque Onix em Seg 18 Ago 2014, 16:51

um pequeno erro no código, é que ao invez de view_wview, acredito que deve-se usar view_xview+view_wview, do geito que esta, nao vai desativar/ativar sertos objetos...

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Ter 19 Ago 2014, 09:16

Ontem passei o o dia todo tentando arrumar esse problema, não deu certo as dicas, alguém poderia me passar mais informações?

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mateus O de Andrade em Ter 19 Ago 2014, 09:53

Bom dia Mestre Rá,
Ainda estou tentando relembrar os códigos mas vou tentar te ajudar de uma maneira que acho que irá funcionar.
Você poderia fazer o seguinte:

Faça o teste:

Código:
 if obj_player.x+view_wview/2 >= obj_enemy.x  
{
"ações a serem executadas"
}
}
Dividindo a wview por 2 vai fazer as ações mais ou menos no momento que entrar no campo de visão do players (que nesse caso é +- no meio da tela.

Dei uma testada rápida e deu certo aqui, por favor me de uma resposta assim que puder.

Código:
if obj_mario.x+view_wview/2 >= obj_gumba_over.x 
{
obj_gumba_over.hspeed=-1
}
Isso foi o que eu fiz para testar e o resultado é que quando o Gumba "entra na tela" do Mario ele inicia o movimento.
Claro que nesse caso se aplicou em todos os gumbas do Level hahahaha mas a intenção é a que vale Razz

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por AxeInLine em Ter 19 Ago 2014, 10:32

Boa tarde tongue
Não entendi o porque de não ter funcionado, acabei de fazer um teste agora (ok ok, modifique algumas coisas...)

Bem, vou deixar o link do .gmz para você ver como eu estava dizendo que era para fazer (para abrir o arquivo, abra o gm:s e vá na aba import e procura o arquivo).
Link.

AxeInLine

Número de Mensagens : 211
Idade : 14
Data de inscrição : 23/03/2014
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Ter 19 Ago 2014, 10:44

Eles continuam andando cara, testei sua dica tanto no step como em outside view, e mesmo assim eles andam.
AxeInLine eu também não sei direito, fiz exatamente como você falou, e mesmo assim eles continuavam andando mesmo fora da view, eu tinha feito uma modificações também, mas o resultado foi que eles ficavam imóveis mesmo estando na view.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mateus O de Andrade em Ter 19 Ago 2014, 10:49

Mestre Rá,
Está na hora de você postar seu código, bem como você está fazendo.
Assim poderemos ver onde estão os erros e o que fazer para concertá-los.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Ter 19 Ago 2014, 11:11

Vou pegar um dos monstros mais simples aqui.

No create tem:
- o move fixed para direita com speed 3;
- e um script com image_speed = 0.2.

No step tem:
- if place_free(x,y+5){gravity = .5} else {gravity = 0};
- test variable, com variable: hspeed, value: 0 e operation:large than;
- change sprite com o sprite do monstro para direita;
- else;
- outra change sprite com o sprite do monstro para esquerda.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Rodrigo Santiago em Ter 19 Ago 2014, 11:16

Bem eu acho que ele tem q entender o que está fazendo.

Mestre rá, você sabe os conceitos básicos de algorítimo?(if-else, variaveis)

Se não souber podemos ajudar primeiro a você saber o que é, depois é só usar a lógica.
Seu problema é bem fácil de resolver não entre em pânico Smile .

AxeInLine seu código está errado '-'

Veja, se ele estiver dentro de xview mas estiver fora de yview? o else so vai funcionar no primeiro if, então aconselho a usar and(&&).
ex :
Código:

if (x<=view_xview[0]) || (x>=view_wview[0]+view_xview[0])&&(y<=view_yview[0]) || (y>=view_hview[0]+view_yview[0]){
  limite = true;
}else {
  limite = false
}

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mateus O de Andrade em Ter 19 Ago 2014, 11:39

No create tem:
- o move fixed para direita com speed 3;
- e um script com image_speed = 0.2.
Está aqui o por que ele continua se movendo....sempre que ele for criado ele vai iniciar o movimento.
Tira isso e ele se movera somente quando ele estiver na posição que te passei antes.
Mas lembre de adequar o meu código ao seu.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Ter 19 Ago 2014, 12:18

Rodrigo Santiago eu tenho uma pequena noção sobre if-else  
Seria bom ler mais sobre esses assuntos se tiverem algum tutorial sobre esse assunto ficaria muito agradecido.

Mateus O de Andrade
Fiz o que me pediu, e o monstro ficou parado. Será que fiz alguma coisa errada?
Esqueci que tinha mais 1 script, colisão com o chão

if vspeed > 0 and not place_free(x,y + vspeed){
move_contact_solid(direction,vspeed)
}
vspeed = 0

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mateus O de Andrade em Ter 19 Ago 2014, 12:48

Fasssa assim Mestre Rá,
Crie um inimigo sem nenhum código e no evento STEP coloque o meu código alterando apenas os nomes dos objetos que você usou para sue jogo.
if NOME DO PLAYERS.x+view_wview/2 >= NOME DO INIMIGO.x
{
NOME DO INIMIGO.hspeed=-1
}
Agora é só testar esse novo inimigo.
E certifique-se que sua view está configurada que deve funcionar.
Me avise se der certo.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Ter 19 Ago 2014, 13:10

Deu certo. Mas quando criei um evento colisão com a parede e nele coloquei a ação reverse horizontal, o inimigo ao colidir com a parede ele fica parado. Talvez seja isso que fez com que ele ficasse parado.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mateus O de Andrade em Ter 19 Ago 2014, 13:21

É por que ele vai estar SEMPRE tentando ir na direção que você indicou (vspeed-1) pois esse código está em step. Tem que adaptar esta ação ao seu código. Vou tentar aqui, mas ainda não sei como.
Assim que tiver uma ideia eu posto.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Ter 19 Ago 2014, 13:27

Beleza cara.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mateus O de Andrade em Ter 19 Ago 2014, 17:14

Boas novas meu amigo, resolvi o problema.
Faça assim:

Primeiramente em CREATE:
Crie uma variável active e coloque como true

em STEP
if PLAYER+view_wview/2 >= INIMIGO.x and active=true
{
INIMIGO.hspeed=-1
active=false
}
Ai pode colocar ele para reverter a hspeed normalmente que agora sim deve dar certo.

Se ainda sim não der certo vamos tentar resolver pra você.

Ainda, se alguém souber como fazer isso de maneira mais fácil, por favor compartilhe conosco, vou adorar saber uma outra maneira.

Abraços pessoal.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Qua 20 Ago 2014, 10:07

Não deu certo. Eles continuam andando, ou se eu tiro o start moving ele fica parado.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mateus O de Andrade em Qua 20 Ago 2014, 10:27

Bom dia Mestre Rá,
Se não for muito incomodo, coloque sua engine aqui para que eu possa dar uma olhada nela.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Qua 20 Ago 2014, 10:41

Está aí cara, é muito simples esse meu jogo, ou pobre, mas aos poucos estou aperfeiçoando ele.
http://www.4shared.com/file/7k5UxEFBce/Novo_Pacman_10.html?

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mateus O de Andrade em Qua 20 Ago 2014, 10:59

PAISE THE SUN!!!! Acho que agora sim.
De uma olhada para ver se é isso que você queria.
Eu mexi na view para você poder ver o que está ocorrendo e ver que somente os inimigos que estiverem ao alcance do personagem irão se mover.
Espero que isso seja o que você queria.http://www.4shared.com/file/RrVaO5Jpce/Novo_Pacman_10.html?

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Qua 20 Ago 2014, 11:13

Testei aqui e eles estão parados.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mateus O de Andrade em Qua 20 Ago 2014, 11:17

scratch Bom.....então temos um problemão nas mãos.
Deixe eu ver se entendi tudo certo.
Você tentou se aproximar lentamente dos inimigos e eles continuam parados?
Pois eu testeis aqui e deu certo. Inclusive eu uso essa mesma mecânica no meu jogo do Mario e está dando tudo certo.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mestre Rá em Qua 20 Ago 2014, 11:27

Não testei de novo, foi erro meu, está excelente assim, valeu cara.

Mestre Rá

Número de Mensagens : 106
Data de inscrição : 26/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

Mensagem por Mateus O de Andrade em Qua 20 Ago 2014, 11:38

Ah beleza, se está funcionando está ótimo.
Já estava ficando preocupado se eu estava fazendo alguma coisa errada.
Que bom que te ajudei cara.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: View e inimigos parados

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


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