Conectar-se
Quem está conectado
26 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 26 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

View e inimigos parados

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.
avatar
Data de inscrição : 23/03/2014
Número de Mensagens : 211
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 40

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: View e inimigos parados

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))
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: View e inimigos parados

em Seg 18 Ago 2014, 10:15
Desculpa ser chato de novo, mas não entendi esse if.
avatar
Data de inscrição : 23/03/2014
Número de Mensagens : 211
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 40

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: View e inimigos parados

em Seg 18 Ago 2014, 10:20
Reputação da mensagem: 100% (1 votos)
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...
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: View e inimigos parados

em Seg 18 Ago 2014, 10:52
beleza valeu cara.
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1597
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 147

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: View e inimigos parados

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...
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: View e inimigos parados

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?
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: View e inimigos parados

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
avatar
Data de inscrição : 23/03/2014
Número de Mensagens : 211
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 40

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: View e inimigos parados

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.
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: View e inimigos parados

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.
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: View e inimigos parados

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.
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: View e inimigos parados

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.
avatar
Ranking : Nota B
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Número de Mensagens : 1281
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 73

Prêmios
   : 3
   : 1
   : 3
Ver perfil do usuário

Re: View e inimigos parados

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
}
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: View e inimigos parados

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.
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: View e inimigos parados

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
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: View e inimigos parados

em Ter 19 Ago 2014, 12:48
Reputação da mensagem: 100% (1 votos)
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.
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: View e inimigos parados

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.
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: View e inimigos parados

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.
avatar
Data de inscrição : 26/11/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: View e inimigos parados

em Ter 19 Ago 2014, 13:27
Beleza cara.
avatar
Ranking : Nota D
Data de inscrição : 25/03/2014
Número de Mensagens : 399
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 37

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: View e inimigos parados

em Ter 19 Ago 2014, 17:14
Reputação da mensagem: 100% (1 votos)
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.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum