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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 13/03/2010
Número de Mensagens : 33
Insígnias de JAM :

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

[Resolvido]Por que o random me odeia?

em Sab 26 Jun 2010, 17:52
Oie, não sei se alguém lembra, mas eu sou o cara que tava criando um jogo de luta com 26 personagens no outro tópico (seleção de personagens)

Bom, estou com outro probleminha: ao selecionar o personagem eu vou para uma room e crio o personagem inimigo. Porém, o inimigo tem que ser escolhido aleatoreamente, entre os 26 personagens (sim, você pode lutar contra si mesmo). E é aí que mora o problema.

Tentei o seguinte:

-ao clicar no personagem na tela de seleçao, vai para a room do personagem, que tem o personagem e o objeto inimigo (que não tem sprite). Ainda ao clicar, a variável global.inimigo recebe um valor aleatório

Código:

global.inimigo = random_range(1,26)

Sim, eu declarei a variavel global em um objeto controle na primeira room.

Então, aí, no objeto inimigo, no evento create eu coloquei um script assim:

Spoiler:
if not global.inimigo=1
{
if not global.inimigo=2
{
if not global.inimigo=3
{
if not global.inimigo=4
{
if not global.inimigo=5
{
if not global.inimigo=6
{
if not global.inimigo=7
{
if not global.inimigo=8
{
if not global.inimigo=9
{
if not global.inimigo=10
{
if not global.inimigo=11
{
if not global.inimigo=12
{
if not global.inimigo=13
{
if not global.inimigo=14
{
if not global.inimigo=15
{
if not global.inimigo=16
{
if not global.inimigo=17
{
if not global.inimigo=18
{
if not global.inimigo=19
{
if not global.inimigo=20
{
if not global.inimigo=21
{
if not global.inimigo=22
{
if not global.inimigo=23
{
if not global.inimigo=24
{
if not global.inimigo=25
{
instance_create(600,176,inimigo_A)
}
else
instance_create(600,176,inimigo_B)
}
else
instance_create(600,176,inimigo_C)
}
else
instance_create(600,176,inimigo_D)
}
else
instance_create(600,176,inimigo_E)
}
else
instance_create(600,176,inimigo_F)
}
else
instance_create(600,176,inimigo_G)
}
else
instance_create(100,100,inimigo_H)
}
else
instance_create(100,100,inimigo_I)
}
else
instance_create(600,176,inimigo_J)
}
else
instance_create(600,176,inimigo_K)
}
else
instance_create(600,176,inimigo_L)
}
else
instance_create(600,176,inimigo_M)
}
else
instance_create(600,176,inimigo_N)
}
else
instance_create(600,176,inimigo_O)
}
else
instance_create(600,176,inimigo_P)
}
else
instance_create(600,176,inimigo_Q)
}
else
instance_create(600,176,inimigo_R)
}
else
instance_create(600,176,inimigo_S)
}
else
instance_create(600,176,inimigo_T)
}
else
instance_create(600,176,inimigo_U)
}
else
instance_create(600,176,inimigo_V)
}
else
instance_create(600,176,inimigo_W)
}
else
instance_create(600,176,inimigo_X)
}
else
instance_create(600,176,inimigo_Y)
}
else
instance_create(600,176,inimigo_Z)

Tá, até aí tudo bem, mas sempre que eu testo sai o inimigo_Y, e nunca nenhum outro! Não consigo entender o q estou fazendo de errado ou o qual é o jeito certo. Já usei as variáveis random, random_set_seed, randomize e random_range, mas dá sempre a mesma coisa (aliás, se alguém puder me explicar qual é a diferença entre elas, ficarei muito grato)

Por favor, me ajudem!
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 29/03/2009
Número de Mensagens : 927
Insígnias de JAM :

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

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

Re: [Resolvido]Por que o random me odeia?

em Sab 26 Jun 2010, 17:59
oO
que isso?????
n é tao dificil...
cria uma variavel global.personagem com o valor 0
ai na hora que vai por aleatoriamente coloca
Código:
global.personagem = choose("fulano","fulando2","fulano3")
ai na hora da porrada coloca:
Código:
if global.personagem = fulano2 then instance_create(x,y,enemy_fulano2)
if global.personagem = fulano then instance_create(x,y,enemy_fulano1)
if global.personagem = fulano3 then instance_create(x,y,enemy_fulano3)
ai sim e aleatorio...
na hora do random ele vai escolher entre fulano1,fulano2 ou fulano3
e na hora da porrada ele vai criar a escolha no random
avatar
Data de inscrição : 19/03/2008
Número de Mensagens : 267
Insígnias de JAM :

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

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

Re: [Resolvido]Por que o random me odeia?

em Sab 26 Jun 2010, 18:04
original no help do GM8

random(x) Returns a random real number between 0 and x. The number is always smaller than x.

random_range(x1,x2) Returns a random real number between x1 (inclusive) and x2 (exclusive).

random_set_seed(seed) Sets the seed (an integer) that is used for the random number generation. Can be used to repeat the same random sequence. (Note though that also some actions and the system itself uses random numbers.)

colocado no google tradutor:

random (x) Retorna um número real aleatório entre 0 e x. O número é sempre menor do que x.

random_range (x1, x2) Retorna um número real aleatório entre x1 (inclusive) e x2 (exclusive).

random_set_seed (semente) Define a semente (um inteiro) que é usado para a geração de números aleatórios. Pode ser usado para repetir a mesma seqüência aleatória. (Note que apesar de algumas ações e também o próprio sistema usa números aleatórios).
avatar
Data de inscrição : 13/03/2010
Número de Mensagens : 33
Insígnias de JAM :

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

Re: [Resolvido]Por que o random me odeia?

em Sab 26 Jun 2010, 18:06
makgamer, a função choose só me deixa escolher um máximo de 16 valores, eu preciso de 26 :/ tem como ter mais?

reddragon, valeu pela explicação, eu tinha olhado no help mas num tinha entendido direito x.x
avatar
Ranking : Nota C
Notas recebidas : C - C
Data de inscrição : 14/11/2008
Número de Mensagens : 1166
Insígnias de JAM :

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

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuáriohttp://www.programaCODM.webs.com/

Re: [Resolvido]Por que o random me odeia?

em Sab 26 Jun 2010, 18:11
tipow... pro CHOOSE aceitar Mais Valores é só fazer assim: (por exemplo)

choose(choose(valor1,valor2),choose(valor3,valor4),choose(valor5,valor6))

e assim por diante ;)

FLWs Té + Smile
avatar
Data de inscrição : 19/03/2008
Número de Mensagens : 267
Insígnias de JAM :

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

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

Re: [Resolvido]Por que o random me odeia?

em Sab 26 Jun 2010, 18:18
talvez assim:

Código:
i = floor(1 + random(25))

switch(i){
case 1:
instance_create(x,y,enemy_fulano1)
break;
case 2:
instance_create(x,y,enemy_fulano2)
break;
case 3:
instance_create(x,y,enemy_fulano3)
break;
case 4:
instance_create(x,y,enemy_fulano4)
break;
.
.
.
.
case 26:
instance_create(x,y,enemy_fulano26)
break;
}

floor é um comando de arredondamento porque o comando random um numero Real positivo, isto é, fracionado. mas o floor arredondando ele para baixo e somando com 1 conseguimos o intervalo de random que você quer.



avatar
Data de inscrição : 25/03/2010
Número de Mensagens : 666
Insígnias de JAM :

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

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

Re: [Resolvido]Por que o random me odeia?

em Sab 26 Jun 2010, 18:21
Tenta colocar isso:
Código:
global.inimigo = irandom_range(1,26)
vai deixar o numero inteiro
avatar
Data de inscrição : 13/03/2010
Número de Mensagens : 33
Insígnias de JAM :

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

Re: [Resolvido]Por que o random me odeia?

em Sab 26 Jun 2010, 18:23
:O que momento lindo deu certooooo

vlw gente!!!

se algum admin quiser, ja pode trancar o tópico, problema resolvido!

VLW PESSOAS!
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: [Resolvido]Por que o random me odeia?

em Sab 26 Jun 2010, 19:32
Tópico resolvido.


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