Conectar-se
Quem está conectado
17 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 16 Visitantes

CRP-Max

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
Insígnias de JAM :

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

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

problemas com codigo Random!

em Sab 03 Nov 2012, 21:28
Bem, eu estava tentando fazer um sistema de fogo no meu jogo, usando o código:

Código:
fogoespalha = random(130)
fogoespalha2 = random(32)
if fogoespalha = 8
{
instance_create(x+fogoespalha2,y+fogoespalha2,obj_fire)
}
(no step)
porém, o comando random() não parece estar funcionando.
Alguem poderia identificar para min o erro no código?
avatar
Ranking : Nota D
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Número de Mensagens : 582
Insígnias de JAM :

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

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

Re: problemas com codigo Random!

em Sab 03 Nov 2012, 21:38
Qual o erro que está dando?
Se for uma mensagem de erro,mostre-nos.

Se for porque a instancia não está sendo criada,é porque a taxa de porcentagem está muito baixa, 1/16.
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
Insígnias de JAM :

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

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

Re: problemas com codigo Random!

em Sab 03 Nov 2012, 21:43
Não dá mensagens de erro, porém não funciona(o que é estranho,pois em um outro objeto está funcionando perfeitamente).

E não compreendo o por que disso!
edit:
Parece ter funcionado agora, continuo sem entender o problema, mas ao menos agora funcionou.
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

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

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

Re: problemas com codigo Random!

em Sab 03 Nov 2012, 22:03
Cara a probabilidade de fogoespalha ser exatamente 8 é mínima. A função random() pega números de ponto flutuante (8.4, 129.3 e etc) logo para ser exatamente 8 fica difícil.

Use irandom(), ela pega números inteiros de 0 a X. No teu caso fogoespalha teria 1/130 (0,7%) de chance ser 8.

FLWS!
avatar
Ranking : Nota D
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Número de Mensagens : 582
Insígnias de JAM :

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

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

Re: problemas com codigo Random!

em Sab 03 Nov 2012, 22:18
Se pelo menos você nos falasse oque está realmente dando errado,seria mais fácil.
avatar
Ranking : Nota C
Data de inscrição : 21/08/2012
Número de Mensagens : 97
Insígnias de JAM :

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

Re: problemas com codigo Random!

em Dom 04 Nov 2012, 01:23
fogoespalha = random(130)
fogoespalha2 = random(32)
if fogoespalha = 8
{
instance_create(x+fogoespalha2,y+fogoespalha2,obj_fire)
}

Se o codigo é exatamente esse voce errou no IF, pois voce esta dizendo que fogoespalha esta recebendo 8 e nao igual a 8.

Mas creio que nao seja esse o erro, pois isso daria um aviso de erro.

É oq disseram, é quase impossivel o espalhafogo ser igual a 8 pois a quantidade de valores entre 0 e 130 que o random pode gerar é infinito.

Para usar o random dessa maneiro é melhor voce escolher um IF que se torna verdadeiro para valores > ou < que um valor que vc queira.

E de preferencia faca random(10) e escolhe por ex: if espalhafogo >9.

Dessa forma tem 10% de chances de gerar fogo, oq nao eh tao grande.

Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

Re: problemas com codigo Random!

em Dom 04 Nov 2012, 11:54
Há variáveis desnecessárias, você pode fazer assim:

Código:
if (irandom(130)==8)
{
var r;
r = irandom(32);
instance_create(x+r, y+r, obj_fire)
}
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