Conectar-se
Quem está conectado
27 usuários online :: 2 usuários cadastrados, Nenhum Invisível e 25 Visitantes

CRP-Max, NPH

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 10/05/2014
Número de Mensagens : 73
Insígnias de JAM :

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

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

Como Fazer Um Objeto Spawnar Aleatoriamente

em Dom 07 Set 2014, 12:30
No Meu Game Spawna Recursos Randomicamente

Criei Um Objeto (obj_spw)
E O Lugar Onde Ele Spawna(obj_local)

No obj_local Deixei Vazio

E No obj_spw
coloquei assim No Create
Código:

isp=0
spsp=900
E Assim No Step
Código:

isp+=1

if isp=spsp{
instance_create(random(obj_local),random(obj_local),HP)
instance_create(random(obj_local),random(obj_local),Municao)
}

Só Que Ele Spawna Em Todos Os obj_locais

Mas Eu Quero Que Ele Escolha Apenas 2 Deles 1 Para O objeto Municao E O Outro Para O Objeto HP

:| Da Um Help Aê


Última edição por Markituh em Dom 07 Set 2014, 12:57, editado 1 vez(es) (Razão : Remoção da tag hide pra code)
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: Como Fazer Um Objeto Spawnar Aleatoriamente

em Dom 07 Set 2014, 13:54
Olha, do jeito que você está fazendo ele realmente vai spawnar em todos os locais. Porque quando você usa o identificador do objeto (tipo "obj_local") isso vai ser aplicado para todos as instâncias deste objeto local. Só uma coisa: os dois primeiros argumentos do instance_create não deveriam ser "obj_local.x" e "obj_local.y"? Esse random(obj_local) não parece tem muito sentido GMLístico não Laughing

Seguinte, você vai precisar de duas funções: instance_number e instance_find. A primeira diz quantos instâncias de um determinado objeto existem e a segunda pega a enésima instância do objeto e retorna a ID dele pra você, para aí então você poder usar tranquilamente pra spawnar os itens. Vai ficar assim:
Código:
isp += 1

if isp=spsp {
    qtd = instance_number(obj_local);
    local_hp = instance_find(obj_local,irandom(qtd-1));
    
    // Loopzinho pra nao spawnar no mesmo local
    while true {
        local_municao = instance_find(obj_local,irandom(qtd-1));
        if local_municao <> local_hp then break;
    }
    
    instance_create(local_hp.x, local_hp.y, HP);
    instance_create(local_municao.x, local_municao.y, Municao);
    isp = 0;
}

Daí ele vai colocar HP e munição aleatoriamente em locais diferentes! E um isp = 0 ali no final pra reiniciar o contador. Creio que deve ser isso que você quer Very Happy
Abraços o/
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