Conectar-se
Quem está conectado
13 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 13 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

Um probleminha com a função or

em Sab 03 Jan 2009, 15:32
if distance_to_object(Inimigo1)<3 or distance_to_object(Inimigo2)<3
if floor(random(3))=1
if x>Inimigo1.x or x>Inimigo2.x
{
instance_change(soco_esuqerda,1)
}
Tudo isso checa se o inimigo1 ou o inimigo2 estiver 3 pixels de longitude do Player e estiver a esquerda do Player tem chance podemos dizer dele dar um soco no Player,mas isso não esta funcionando,e tenho certeza que é por causa do ''or'',eu acho que o empreguei da maneira errada,alguem pode me corrijir onde eu estiver errado?
avatar
Data de inscrição : 14/12/2008
Número de Mensagens : 170
Insígnias de JAM :

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

Re: Um probleminha com a função or

em Sab 03 Jan 2009, 16:00
tenta colocar Else! :|

if distance_to_object(Inimigo1)<3 or distance_to_object(Inimigo2)<3
if floor(random(3))=1
if x>Inimigo1.x else x>Inimigo2.x
{
instance_change(soco_esuqerda,1)
}
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

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

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

Re: Um probleminha com a função or

em Sab 03 Jan 2009, 16:23
Else? Isso significa senão, e não se usa assim (que eu saiba).

Não sei pq não funcionou.

Talvez porque

if distance_to_object(Inimigo1)<3 or distance_to_object(Inimigo2)<3
if floor(random(3))=1
if x>Inimigo1.x or x>Inimigo2.x
{
instance_change(soco_esquerda,1)
}
//Sendo que este código está no Player, isso mudaria o objeto Player, não o inimigo. E você queria mesmo mudar o objeto, não queria mudar o sprite?

Um jeito de fazer seria assim:

if distance_to_object(Inimigo1)<3
if floor(random(3))=1
if x>Inimigo1.x
{
with (Inimigo1)
{
instance_change(soco_esquerda,1);
}
}

if distance_to_object(Inimigo2)<3
if floor(random(3))=1
if x>Inimigo2.x
{
with (Inimigo2)
{
instance_change(soco_esuqerda,1);
}
}

PS.: Você pôs no evento step?
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

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

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

Re: Um probleminha com a função or

em Sab 03 Jan 2009, 16:40
if distance_to_object(Inimigo1)<3
{
if x>Inimigo1.x
{
if floor(random(3))=1
{
instance_change(soco_esuqerda,1)
}
}
}

if distance_to_object(Inimigo2)<3
{
if x>Inimigo2.x
{
if floor(random(3))=1
{
instance_change(soco_esuqerda,1)
}
}
}

acredito que assim funcione.
Tente aumentar a distancia. 3 pode ser mto poco.

Flw!
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

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

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

Re: Um probleminha com a função or

em Sab 03 Jan 2009, 16:44
@Janx escreveu:Tente aumentar a distancia. 3 pode ser mto poco.

É verdade, se, por exemplo, você colocou a origem dos sprite no meio, e cada um tem 32px de largura, uma distância boa seria 32.
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: Um probleminha com a função or

em Sab 03 Jan 2009, 18:18
Bem,vou explicar direito como é.É assim você escolhe um personagem e vai com ele na fase,e,na fase há mais de um personagem batlhando,entendeu?E esse script aí é praticamente uma inteligencia artificial do inimigo,não exatamente o Player,eu falei Player pensei que fosse complicarr menos assim.Mas aí o problema é que se eu não usar o or o script iria ficar gigantesco!E isso funcionaria como se um estiver a uma certa distancia de um personagem,ou de outro,ou deoutro personagem,ele daria o soco entendeu?Tem um outro jeito de fazer isso sim,mas é como eu disse ficaria grande demais fazer um script para cada personagem que chegasse perto.
avatar
Data de inscrição : 19/07/2008
Número de Mensagens : 1257
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://www.rknf1995.blogspot.com

Re: Um probleminha com a função or

em Sab 03 Jan 2009, 20:31
@Janx escreveu:if distance_to_object(Inimigo1)<3
{
if x>Inimigo1.x
{
if floor(random(3))=1
{
instance_change(soco_esuqerda,1)
}
}
}

if distance_to_object(Inimigo2)<3
{
if x>Inimigo2.x
{
if floor(random(3))=1
{
instance_change(soco_esuqerda,1)
}
}
}

acredito que assim funcione.
Tente aumentar a distancia. 3 pode ser mto poco.

Flw!

bem a resposta estq quse ai so que voce troca nome dos inimigos sprites e coisa por argumentos ai depois na hora de executa o script voce define o ke akele arguemnto entendeu?
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: Um probleminha com a função or

em Dom 04 Jan 2009, 13:29
É,mas eu já tentei tambem,vai ser muitos argumentos,é capaz de ultrapassar 15 (o limite).Mas eu só queria saber oque eu fiz de errado alí,na verdade eu estava fazendo com arumnetos,só que os personagens são muitos,pois alem de usar o argumento para os personagens eu teria de usar para outras coisas lá,mas então...?Ninguem não faz nem idéia do problema alí?... :|
avatar
Ranking : Sem avaliações
Data de inscrição : 08/06/2008
Número de Mensagens : 2314
Insígnias de JAM :

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

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

Re: Um probleminha com a função or

em Dom 04 Jan 2009, 13:46
3 pixels de distancia é muito pouco. ;|

Se é um script para se usar com argumentos... eu sei o que está errado.

if distance_to_object(Inimigo1)<3 or distance_to_object(Inimigo2)<3

Não faça isso, pois a distancia comparada e do objeto que esta executando o script para o outro.
Compare do obj1 para o obj2 com point_distance(x1,y1,x2,y2):
Código:
if point_distance(argument0.x,argument0.y,argument1.x,argument1.y)
{
    if floor(random(3))=1
    if x>argument0.x or x>argument1.x
    {
    instance_change(soco_esuqerda,1)
    }
}

De nome ao script e use. Happy
Tipo: ai_ataque(obj1,obj2)
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: Um probleminha com a função or

em Seg 05 Jan 2009, 14:27
Ei,eu fiz assim

if distance_to_object(Inimigo1)<5 or distance_to_object(Inimigo2)<5
{
if floor(random(3))=1
if x>Inimigo1.x or x>Inimigo2.x
{
instance_change(sc_esquerda,1)
}
}
Eu troquei esse point distance,porque quando eu o coloquei o personagem fica dando soco sem ninguem chegar perto,mas agora funcionou,Acredito que seja por causa de ''{'' que devia colocado alí onde está laranjado no script,mas o importante é que deu,vlw pela ajuda todo mundo aê,inclusive vlw pela solução tambem Kabeção! Very Happy
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