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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 15/07/2008
Número de Mensagens : 324
Insígnias de JAM :

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

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

Uma variavel em todos objetos

em Qua 26 Jan 2011, 19:43
Ae,agluem podia me ajudar??Tava querendo saber como que eu poderia checar uma variavel em todos os objetos.
Simplificando:

Se os inimigos nao estiverem atacando nem recuando,acontece tal ação...

Código:
if obj_inimigo.recuar=false
if obj_inimigo.atacar=false
{
bla bla bla
}

Eu fiz isso,só que ele só checou 1 dos inimigos! Rolling Eyes
avatar
Ranking : Sem avaliações
Data de inscrição : 26/04/2010
Número de Mensagens : 1217
Insígnias de JAM :

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

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuáriohttp://lightsoftworks.blogspot.com/

Re: Uma variavel em todos objetos

em Qua 26 Jan 2011, 19:47
Isso aconteceu só com um único OBJETO (contando todas as intâncias dele na room) do inimigo ou com uma só INSTÂNCIA (Uma só instância de um objeto inimigo) deles?
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

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

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

Re: Uma variavel em todos objetos

em Qua 26 Jan 2011, 19:50
Colega, sabe o que são IDs? Se não, melhor se dedicar a aprender o que é. Ele só checa um objeto pois o GM tenta alcançar a mais recente instância do objeto inimigo(ou a mais próxima, não sei), o meio mais viável é você fazer esse esquema quando colidir, ou até mesmo usar instance_nearest.
Código:
var ini;
ini = instance_nearest(x+20,y,obj_inimigo)
if ini.recuar = false
if ini.atacar = false
{
bla bla bla
}
instance_nearest(x,y,obj) é uma função que retorna a instância mais próxima nos pontos x e y, de tal objeto.
avatar
Data de inscrição : 15/07/2008
Número de Mensagens : 324
Insígnias de JAM :

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

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

Re: Uma variavel em todos objetos

em Qua 26 Jan 2011, 20:04
Acho que nao daria muito certo checar a distancia,pq cada um fica em uma posição aguardando o proximo turno e depois de atacar eles voltam para a mesma posição Sad
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

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

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

Re: Uma variavel em todos objetos

em Qua 26 Jan 2011, 20:15
Tipo cara, não tem como fazer por obj_inimigo, pois há vários deles na room e esses vários são as instâncias do mesmo. Não sabe o que é uma instância? Google it; YoyoGames it; GameMakerWiki it. O que você tem que fazer? Tem que pegar a ID da instância utilizando os conceitos de distância, o instance_rearest, e armazenar a instância que te atacou numa variável, sendo assim facilmente daria para fazer operação assim que ele voltasse para o lugar.
avatar
Data de inscrição : 30/12/2009
Número de Mensagens : 1344
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://sitedosjogos.forumeiros.com

Re: Uma variavel em todos objetos

em Qua 26 Jan 2011, 20:31
tente de alguma forma criar um variavel global, vai facilitar e muito seu trabalho, pode crer
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

Re: Uma variavel em todos objetos

em Qua 26 Jan 2011, 20:47
Amigão, o jeito mais fácil que conheço seria assim:

with (all)
{
if (obj_inimigo.recuar == false) && (obj_inimigo.atacar == false)
{
//Faça algo aqui
}
}

Com este código é garantido que todas as instâncias serão pocessadas. É o poder do "with"
Flws!
avatar
Data de inscrição : 30/12/2009
Número de Mensagens : 1344
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://sitedosjogos.forumeiros.com

Re: Uma variavel em todos objetos

em Qua 26 Jan 2011, 21:34
vinnians, isso não vai dar certo pois de qualquer forma ainda existem multiplos obj_inimigos, olhA AÊ

pergunta, o que significa ==? eu sempre uso =. vc usa ==, tem diferença ou nao?
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

Re: Uma variavel em todos objetos

em Qua 26 Jan 2011, 21:38
@Henrique_GJ escreveu:vinnians, isso não vai dar certo pois de qualquer forma ainda existem multiplos obj_inimigos, olhA AÊ

pergunta, o que significa ==? eu sempre uso =. vc usa ==, tem diferença ou nao?
Geralmente eu uso bastante esse tipo de código e sempre dá certo, pois ao encontrar a condição ele vai realizar a tarefa que nosso amigo deseja e vai continuar olhando em todas as instâncias.
Quando ao sinal '==' eu uso sempre que estou testando uma condição. O GM aceita o '=' separado, mas como uso bastante C e o GM permite essa sintax eu a utilizo no GM tambem, pois separa a atribuição da relação de igualdade.
Flws!
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

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

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

Re: Uma variavel em todos objetos

em Qua 26 Jan 2011, 21:45
Tem. = é usado para atribuir algo, == é usado para comparar algo. Dê uma sacada em Bitwise operators no Google ou procure sobre Expressions na Wiki da Yoyogames. E o código do vinians não parece estar errado, pois com o with(all) dá-se a fazer muita coisa.

Edit:
Bom, já que o vinians respondeu, o == cai como comparação nas demais linguagens, mas o GM reconhece tanto = como ==.
avatar
Data de inscrição : 15/07/2008
Número de Mensagens : 324
Insígnias de JAM :

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

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

Re: Uma variavel em todos objetos

em Qui 27 Jan 2011, 15:53
Aew,vinians,funcionou o código!Brigadão ai e a todo mundo que se empenhou em ajudar! Very Happy
Conteúdo patrocinado

Re: Uma variavel em todos objetos

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