Barra de load no inicio da fase?

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

Barra de load no inicio da fase?

Mensagem por Super Man em Dom 05 Abr 2009, 23:53

Olá galera!

É possível fazer carregar a barra de "load" no início de cada fase, em vez
de carregar o jogo todo no inicio?

Super Man

Número de Mensagens : 17
Data de inscrição : 29/12/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Barra de load no inicio da fase?

Mensagem por Borgo em Seg 06 Abr 2009, 16:07

Não, mas dá para configurar as imagens (sprites) para não serem pré carregadas (pre-load).

Borgo

Número de Mensagens : 69
Idade : 29
Data de inscrição : 06/01/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.neonerds.com.br

Voltar ao Topo Ir em baixo

Re: Barra de load no inicio da fase?

Mensagem por Janx em Seg 06 Abr 2009, 18:02

Até da,
Complicado? um pouco...

Oque vc presisa:
Ter os recursos q serao carregados fora do executavel,

Ai quando for para a fase vc adiciona o sprite, background, etc
usando:
background_add
sprite_add
sound_add
...

Lembre-se de deleta-los da memoria depois de usar!!
sprite_delete (ou sprite_discard, num lembro...)
background_delete (ou background_discard, num lembro...)
...

Flwss

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: Barra de load no inicio da fase?

Mensagem por Anderson3d em Seg 06 Abr 2009, 18:15

o problema disso é o que to passando nesse momento, nao aparece uma barra de loading, simplesmente a tela parece travar, depois de dar o load começa a fase. ou seja, é um quebra galho e fica feio pacas...

Anderson3d

Ranking : Nota A
Número de Mensagens : 1479
Idade : 33
Data de inscrição : 15/02/2009
Notas recebidas : A - A
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

http://www.indiegamebr.com

Voltar ao Topo Ir em baixo

Re: Barra de load no inicio da fase?

Mensagem por Janx em Seg 06 Abr 2009, 19:05

Nao se vc fizer direito...

Faz uma room chamada "LOAD"
Ai quando for para uma fase, vc salva o valor da fase em uma variavel global assim:

Código:
global.next_fase = fase2;
room = LOAD //ir para o room de load

Blz, isso vai te deixar no room de load.

Crie um objeto LOAD_obj
no evento create:
Código:
loading = 0;
itens_fase2 = 2; //saber quantos itens tem para serem carregados, para intao adicionar na % a cada item carregado

e no evento draw dele:
Código:
draw_text(16,16,string(loading));

//Agora começa a carregar as coisas:
if global.next_fase = fase2 //carregar coisas para fase 2
{
 if !sprite_exists(spr_aaa) //se ainda nao tem o sprite spr_aaa
 {
 global.spr_aaa = sprite_add('sprite_aaa.png',0,0,0,0,0,0,0); //carregar sprite e guardar valor na variavel global.spr_aaa
loading += 100/itens_fase2; //adicionar na % de itens carregados.
exit;
 }
 if !sprite_exists(spr_aab) //se ainda nao tem o sprite spr_aab
 {
 global.spr_aab = sprite_add('sprite_aab.png',0,0,0,0,0,0,0);
loading += 100/itens_fase2; //adicionar na % de itens carregados.
exit;
 }
}

room = global.next_fase; //No fim do script, tem esse codigo, mas esse codigo so é lido se ja foi tudo carregado, por isso da funçao exit, q sai do script, e dpois volta no proximo step, ai quando nao tiver nada pra carregar ele passa direto e le o codigo, dai ele vai para a room.
[code]

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: Barra de load no inicio da fase?

Mensagem por Anderson3d em Ter 07 Abr 2009, 05:06

janx eu me referí apenas à barrinha de load, mesmo que seja numa outra room.
mas é a melhor forma mesmo...

Anderson3d

Ranking : Nota A
Número de Mensagens : 1479
Idade : 33
Data de inscrição : 15/02/2009
Notas recebidas : A - A
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

http://www.indiegamebr.com

Voltar ao Topo Ir em baixo

Re: Barra de load no inicio da fase?

Mensagem por Borgo em Qua 08 Abr 2009, 13:15

O problema é o seguinte, quando ele vai carregar, ele para tudo que está fazendo até que termine, inclusive os draws ficam congelados.
Não há como colocar alguma coisa dinâmica, como uma barra progressiva, mas dá para colocar uma imagem estática antes de iniciar o carregamento, obs.: no evento draw, é possível fazer quase tudo que podemos fazer no step...
Então, no draw, podemos seguir código:

if carregado=0{
draw_sprite ou draw_text ou whatever you want...
//script para carregar as coisitas
carregado=1
}

o que faz... isto irá carregar somente uma vez quando a variavel carregado for igual a 0...
Logo, a imagem ou texto que inserirmos irá aparecer somente uma vez e quando terminar de carregar (carregado=1) ela não será mais desenhada, até que carregado seja 0 novamente...
resumidamente, o texto ou imagem será desenhada e o jogo irá congelar para carregar, por isso não é possível colocar um barra progressiva por exemplo.

Borgo

Número de Mensagens : 69
Idade : 29
Data de inscrição : 06/01/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.neonerds.com.br

Voltar ao Topo Ir em baixo

Re: Barra de load no inicio da fase?

Mensagem por Janx em Qua 08 Abr 2009, 13:25

da pra por uma barra progessiva, é oque eu expliquei ali no meu ultimo post.
So que nao é uma barra, é uma contagem
Q vai aumentando
1..2...3 De acordo com as coisas carregadas

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: Barra de load no inicio da fase?

Mensagem por Borgo em Qua 08 Abr 2009, 14:24

É verdade... agora que eu li inteiro rsrsrs desculpas

Borgo

Número de Mensagens : 69
Idade : 29
Data de inscrição : 06/01/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.neonerds.com.br

Voltar ao Topo Ir em baixo

Re: Barra de load no inicio da fase?

Mensagem por M.A.S. em Qua 08 Abr 2009, 20:56

na verdade tem um modo melhor, é tipo o que o janx disse mas vc tem que organizar o que vai usar primeiro. se você não vai usar tudo no inicio da fase, carregue so o que vai usar e de um tempo para carregar o restante senão vai dar uma travada grotesca.

usa durante o carregamento as funcoes screen_refresh() e screen_redraw(). isso vai atualizar os desenhos da tela pra evitar aquela janela branca tosqueira

M.A.S.

Número de Mensagens : 377
Data de inscrição : 03/01/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Barra de load no inicio da fase?

Mensagem por Kabeção em Qui 09 Abr 2009, 18:26

Quando eu uso muitos arquivos eu coloco as funções para carregá-los em um arquivo de texto separado.
Ficaria assim:

Código:
spr1=sprite_add(...)
spr2=sprite_add(...)
back1=background_add(...)
som1=sound_add(...)

Sempre mudando de linha apos uma função.
Para fazer uma barra de loading nisso eu abro o arquivo de texto com as funções file_text. Uso execute_string lendo cada linha e retorno a porcentagem do processo para desenhar a barra usando screen_redraw também.

Um script para ilustrar isso seria assim:
Código:
var f,l,n;

f=file_text_open_read('carregar.txt')  // abrir arquivo
l=0                                    // linha atual
n=4                                    // numero de linhas no texto

do
{
    execute_string(file_text_read_string(f))
    file_text_readln(f)                // ir para proxima linha
    l+=1

    draw_sprite_ext(sprBarra,0,x,y,l/n,image_yscale,1,c_white,1)
    screen_redraw()        // redesenhar tela
} until file_text_eof(f);  // se o texto acabar, para a leitura

file_text_close(f)                      // dechar arquivo
Eu não o testei mas essa seria a ideia de como fazer.

l/n retorna a escala para em image_xscale. Se estiver na linha 2 e o texto tiver 4 linhas a escala sera 0.5 de uma imagem inteira.
Faça uma sprite do tamanho máximo que você quer para a barra, quando l/n for 0.5, por exemplo, a barra sera desanhada pela metada dizendo que o processo esta em 50%.

Não precisa ser um arquivo de texto, você so precisa fazer algo onde tenha como saber quantas funções serão executadas e qual esta executando no momento.

Querer desenhar uma barra de loading onde poucas e pequenas coisa são carregadas pode ser um disperdicio pois o processo vai ser rápido demais.

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: Barra de load no inicio da fase?

Mensagem por Gusba em Qui 09 Abr 2009, 18:49

mas nem precisa colocar os esquema em um texto, algo assim basta:


Código:
nt = 6 // numero total de carregamentos
n = 0; // numero atual
draw_rectangle(16,16,16+((n*300)/nt),32,false);
sprite_add(...);
n += 1;
draw_rectangle(16,16,16+((n*300)/nt),32,false);
sprite_add(...);
n += 1;
draw_rectangle(16,16,16+((n*300)/nt),32,false);
sprite_add(...);
n += 1;
draw_rectangle(16,16,16+((n*300)/nt),32,false);
sprite_add(...);
n += 1;
draw_rectangle(16,16,16+((n*300)/nt),32,false);
sprite_add(...);
n += 1;
draw_rectangle(16,16,16+((n*300)/nt),32,false);
sprite_add(...);
n += 1;
draw_rectangle(16,16,16+((n*300)/nt),32,false);

Gusba

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

http://www.ciganospictures.hd1.com.br

Voltar ao Topo Ir em baixo

Re: Barra de load no inicio da fase?

Mensagem por makgamer em Sex 17 Abr 2009, 19:42

se diz tipo isso Aqui Question

makgamer

Ranking : Nota D
Número de Mensagens : 927
Idade : 18
Data de inscrição : 29/03/2009
Notas recebidas : D
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   : 1
   :

Voltar ao Topo Ir em baixo

Re: Barra de load no inicio da fase?

Mensagem por Conteúdo patrocinado Hoje à(s) 20:21


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