Um probleminha com a função or

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

Um probleminha com a função or

Mensagem por Phillipe 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?

Phillipe

Número de Mensagens : 324
Idade : 21
Data de inscrição : 15/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Um probleminha com a função or

Mensagem por minato.11 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)
}

minato.11

Número de Mensagens : 170
Idade : 21
Data de inscrição : 14/12/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Um probleminha com a função or

Mensagem por Igor KinGamer 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?

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Um probleminha com a função or

Mensagem por Janx 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!

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Um probleminha com a função or

Mensagem por Igor KinGamer 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.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Um probleminha com a função or

Mensagem por Phillipe 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.

Phillipe

Número de Mensagens : 324
Idade : 21
Data de inscrição : 15/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Um probleminha com a função or

Mensagem por RKNF1995 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?

RKNF1995

Número de Mensagens : 1257
Idade : 21
Data de inscrição : 19/07/2008
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.rknf1995.blogspot.com

Voltar ao Topo Ir em baixo

Re: Um probleminha com a função or

Mensagem por Phillipe 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í?... :|

Phillipe

Número de Mensagens : 324
Idade : 21
Data de inscrição : 15/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Um probleminha com a função or

Mensagem por Kabeção 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)

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Um probleminha com a função or

Mensagem por Phillipe 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

Phillipe

Número de Mensagens : 324
Idade : 21
Data de inscrição : 15/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Um probleminha com a função or

Mensagem por Conteúdo patrocinado Hoje à(s) 12:25


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