Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Ajuda com FPS e quantidade de objetos

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
chicoweb
Membro
Membro
Reações: 0
Mensagens: 135

Ajuda com FPS e quantidade de objetos

Mensagem por chicoweb » Sáb Jul 02, 2016 3:19 pm

Boa Tarde galera,

To com um problema no meu game, quando vai chegando nas fases mais adiantadas, quando aparecem mais inimigos o fps vai diminuindo irritantemente chegando a fica meio em camera lenta;

Eu queria saber se alguem tem uma função ai de debug para exibir na tela todas as intancias existentes na room, e a quantidade de cada, to desconfiado que alguma não esta com o devido detroy e ta dando isso, mas ta osso achar.

E eu também queria aproveitar para tirar uma dúvida: Só a presença dos objetos na room é que diminui o fps ou o movimento deles também influencia (conta movimento simples, varia eixos x e y)?
Meus games:
Jump James - Aventura/Estratégia/Robô
Freedom of Pala Pala - Aventura/Estratégia
Prisioneira - RPG/Bloco/Ação

Avatar do usuário
Golden Bunny
Membro
Membro
Reações: 0
Mensagens: 44

Re: Ajuda com FPS e quantidade de objetos

Mensagem por Golden Bunny » Sáb Jul 02, 2016 3:22 pm

Código: Selecionar todos

show_debug_message(instance_number(instancia));
E.. Não.. O movimento não tem praticamente influência nenhuma sobre o desempenho.
"Nunca morra virgem, os unicórnios morreram virgens, por isso não existem mais" < Gonzo, o eterno filósofo.

Avatar do usuário
chicoweb
Membro
Membro
Reações: 0
Mensagens: 135

Re: Ajuda com FPS e quantidade de objetos

Mensagem por chicoweb » Sáb Jul 02, 2016 4:46 pm

Hyreos escreveu:

Código: Selecionar todos

show_debug_message(instance_number(instancia));
E.. Não.. O movimento não tem praticamente influência nenhuma sobre o desempenho.
O problema é que eu teria que saber o nome de todos os objetos, e o pior teria que saber se ele estão na tela ou não, eu queria era tipo um script generico mesmo.

Ficaria tipo isso ai embaixo que nao sei como fica em gml:

Código: Selecionar todos

yy = 0
for each intance in room{
    yy += 16
    draw_text(x,y+yy,intance.name + " = " + instance.number)
}
E obrigado pelas informações.
Meus games:
Jump James - Aventura/Estratégia/Robô
Freedom of Pala Pala - Aventura/Estratégia
Prisioneira - RPG/Bloco/Ação

Avatar do usuário
gabrielsch
Colaborador
Colaborador
Reações: 0
Mensagens: 234

Re: Ajuda com FPS e quantidade de objetos

Mensagem por gabrielsch » Sáb Jul 02, 2016 8:55 pm

Você pode criar um laço for para passar por todas as instancias, buscar seu id com a função instance_find e extrair outras informações a partir disso:
var c, o_name, o_index;
c = instance_count;
for (i=0; i<c; i+=1)
{
    o_index = instance_find(all, i)
    o_name = object_get_name(o_index.object_index)
    draw_text(32, 32 + i*12, 'Nome: ' + o_name)
};
Imagem

Avatar do usuário
chicoweb
Membro
Membro
Reações: 0
Mensagens: 135

Re: Ajuda com FPS e quantidade de objetos

Mensagem por chicoweb » Qua Jul 06, 2016 8:48 am

Valeu gabriel graças ao seu código eu consegui fazer um script muito bom.
Ele fica exibindo cada objeto e sua quantidade na room, mas ele não repete o nome do objeto fiz uma adaptação aí no código e deu certo.

Para ele ficar otimo so falta ordenar o vetor final pela quantidade, se alguem puder quebrar esse galho e fornecer um script de orndenar vetor agradecemos.

Ah os vetores finais que teria que ser ordenado sai assim, e teria que ser ordenado pela quantidade:

Código: Selecionar todos

o_v_name[o_v_i] 


o_v_quant[o_v_i] 

Eis o código que gera o vetor:

Código: Selecionar todos

/// DEBUG TODOS OS OBJETOS DA ROOM ATIVOS
xx = view_xview[0]
yy = view_yview[0]
var c, o_name, o_index,o_v_i,achou;
o_v_name[2000] = ""
o_v_quant[2000] = 0
c = instance_count;
o_v_i = 0;
for (i=0; i<c; i+=1)
{
    o_index = instance_find(all, i)
    o_name = object_get_name(o_index.object_index)
    
    // So coloco no vetor as NÃO repetidas
    achou = false;
    
    for (j=0; j<o_v_i; j+=1){
        if (o_v_name[j] == o_name){
            achou = true
        }
    }
    
    if (!achou){
        o_v_name[o_v_i] = o_name
        o_v_quant[o_v_i] = instance_number(o_index.object_index)
        draw_text(xx+64,yy+(o_v_i*32),"Objeto: " + o_v_name[o_v_i] + " = " + string(o_v_quant[o_v_i]))    
        o_v_i += 1        
    }
    
};
Meus games:
Jump James - Aventura/Estratégia/Robô
Freedom of Pala Pala - Aventura/Estratégia
Prisioneira - RPG/Bloco/Ação

Trancado

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes