O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Criando uma Tela de Carregamento (que realmente funciona)

Iniciado por cristianoforce, 14/12/2012 às 16:13

14/12/2012 às 16:13 Última edição: 31/03/2016 às 07:37 por King Gerar



[box class=roundframe]Introdução
[/box]
[box class=catbg1]
Fala galera maker! Estou aqui novamente para criar mais um tutorial para vocês. Creio que o título já seja auto-explicativo sobre o que será ensinado neste tutorial, então não preciso de dizer muito nesta introdução kkkkk. Apenas uma observação: a maioria das telas de loading feitas por aí servem apenas como estética aos jogos, neste tópico farei o máximo para que possam entender como fazer uma que será realmente útil para vocês! Que funcionará como deve xD. Espero que gostem.
[/box]


[box class=roundframe]Funcionamento de uma Tela de Carregamento
[/box]
[box class=catbg1]
Antes de começarmos as explicações no maker, devemos entender a utilidade e funcionalidade de uma tela de carregamento. Ao entrarmos em um mapa de nosso jogo, várias informações são processadas de acordo com o que foi definido por você no mesmo, é quando tudo começa a carregar: sprites, mapa, sistemas, vídeos, etc, etc. Certas vezes, devido a imensa quantidade de informações que estão sendo processadas simultaneamente, se é necessário a utilização de uma tela que bloqueia a visualização deste processo aos jogadores, resumidamente, uma tela de títulos serve para esconder os processos sendo carregados em determinado mapa, para que você não entre em uma região de seu jogo e veja personagens surgindo do nada, pedaços do mapa faltando e carregando aos poucos, a iluminação sendo modificada, este tipo de coisa. Uma tática simples e útil para jogos que possuem vários processos trabalhando paralelamente.

Vale atentar que a tela de loading só deve ser utilizada se realmente for necessária! Jogos que possuem uma pequena escala de processos para carregar não necessitam de tal coisa, seria um desperdício de tempo, tanto do jogador, quanto ao programador.

Uma tela de carregamento além de prática, lhe auxilia no evitamento de diversos bugs e falhas durante seu jogo.
[/box]


[box class=roundframe]Criando sua tela de carregamento
[/box]
[box class=catbg1]
Primeiramente vamos criar as imagens que serão utilizadas em nossa tela de loading. Como já foi citado, uma tela de loading deve ocupar todo o espaço da tela de seu jogo para que possa esconder cada pixel do que está acontecendo no mapa no momento.

Eu particularmente gosto de utilizar minha imagem de loading com alguns frames extras para dar uma pequena animação a tela, nesta explicação estarei utilizando 4 imagens:


(Clique nas imagens para ampliar)
(Farei as explicações com o RMXP, por isto minhas imagens estão com a resolução em 640x480)

Tendo as imagens consigo, vamos ao escopo do nosso sistema: criaremos um evento comum que será chamado todas as vezes que quiser ativar sua tela de carregamento, para isto criaremos duas switches:

<> Opções de Switch: [0001: Carregar]
<> Opções de Switch: [0002: Evento Comum]


Lembrando que os nomes podem ser qualquer um.

A primeira switch servirá para ativar a animação das imagens ou deletá-la, caso ela esteja ligado a animação é feita. A segunda será a switch condicional de início do evento comum da tela de carregamento.

Crie um evento comum qualquer desta forma:


Logo em seguida crie uma condição para a ativação e desativação da imagem de loading:

<> Condição: Switch [0001: Carregar] == ON
   <> Mostrar Imagem: 50, "Nome da Imagem"
<> Exceção
   <> Deletar Imagem: 50
   <> Parar Evento
<> Fim


Desta maneira já conseguimos fazer com que a imagem de loading apareça sempre que o evento comum estiver ativo (<> Opções de Switch: [0002: Evento Comum] == ON) e a imagem de loading liberada (<> Opções de Switch: [0001: Carregar] == ON).

Vale lembrar que devemos utilizar sempre a imagem de loading com prioridade máxima, como podem ver, utilizei o comando Mostrar Imagem ativando a imagem 50 (o máximo que o comando permite no RMXP, 20 no VX e 100 no VXAce). Por quê? Caso uma imagem de prioridade 10 (número da imagem = 10) esteja ativa em seu mapa e você defina a imagem de loading com prioridade 5, a imagem 10 irá sobrepor a imagem 5, quando deveria ocorrer o contrário, pois repito, a imagem de loading deve esconder tudo. Definindo a imagem com prioridade máxima não teremos com o que se preocupar quanto a imagens.

Como a minha imagem possuí 4 frames de animação, irei colocar um tempo de espera para a troca de imagens durante o sistema.

Tudo ficou desta forma:


(Clique na imagem para ampliar)

Outro detalhe muito importante, ao se teletransportar a um outro mapa você deve escurecer a tela ao máximo com o comando Cor da Tela para que não ocorra um rápido flash do mapa atual sendo carregado. Exatamente a demo que postarei no final deste tópico com o sistema feito possuí um mapa completamente em branco que apenas muda a cor da tela e teletransporta o jogador para um mapa.


Elimine o gráfico do herói definido no databaser, a mudança de gráfico deve ocorrer na própria parte de carregamento do mapa.


Feito nosso escopo e dando algumas dicas vamos ao evento de carregamento de cada mapa: cada mapa possuirá um evento em Início Automático que será responsável por ativar esta tela de carregamento - lembrando que ela não é obrigatória! - Você pode ou não ativá-la em um mapa. Este evento será divido em três etapas:

<> Comentário: Iniciando Loading
<> Comentário: Carregando durante o loading
<> Comentário: Fim do Loading


Expliquei-vos a primeira etapa logo acima, a inicialização da tela será feita através das duas switches pré-definidas por você:

<> Comentário: Iniciando Loading
<> Opções de Switch: [0001: Carregar] = ON
<> Opções de Switch: [0002: Evento Comum] = ON

<> Esperar: 1 Frame

Agora vem a parte de durante o carregamento, como o próprio nome indica, será onde você ativará tudo o que quer que o mapa carregue: switches, variáveis, eventos, clima, cor da tela, imagens, BGM, SE, etc, etc.

<> Comentário: Iniciando Loading
<> Opções de Switch: [0001: Carregar] = ON
<> Opções de Switch: [0002: Evento Comum] = ON

<> Esperar: 1 Frame
<> Comentário: Carregando durante o loading
<> Parar BGM: 1 ?
<> Parar SE
<> Reproduzir BGM: "Nome do Arquivo"

<> Cor da Tela: (-68, -68, -68, 51), @60
(...) (Código inteiro em imagem no final do box)

Hipoteticamente em meu evento fiz para carregassem coisas aleatórias para demonstrar a tela em funcionamento, em seu jogo você utilizará-la de maneira inteligente de acordo com suas necessidades.

E por último, o fim da tela, fará nada mais que a desativação da tela e o deletamento do evento de carregamento temporariamente:

<> Comentário: Fim do Loading
<> Opções de Switch: [0001: Carregar] = OFF
<> Apagar Evento Temporário

Todo o evento de carregamento deve ficar desta forma:


(Clique na imagem para ampliar)

Reforço que o quê está sendo carregado na imagem são comandos aleatórios demonstrativos

Desta maneira, você já possuí seu sistema de loading feito e pronto para ser executado em qualquer mapa que quiser! Basta repetir o comando de carregamento em todos os mapas que quiser executá-lo. Tudo será feito de forma automática.

O tempo de espera da tela de loading variará de acordo com a quantidade de processos que precisarem ser carregados, obviamente se precisar de carregar 200 variáveis o tempo de espera será maior do que se precisar de carregar 5 variáveis. Em geral, o loading não fica muito tempo na tela, pois não costuma a ser necessário o carregamento de várias coisas num mesmo mapa, isso dependerá do seu jogo em questão. Vocês notarão a diferença de velocidade baixando a demo do sistema.
[/box]


[box class=roundframe]Download do Sistema
[/box]
[box class=catbg1]

RPG Maker XP


RPG Maker VX


[/box]


[box class=roundframe]Término
[/box]
[box class=catbg1]
Agradeço a todos que leram este tutorial. Espero que tenham gostado e entendido a funcionalidade e utilidade de uma tela de carregamento. Usem-a à vontade, mas sempre alerta se é realmente necessário a utilização de tal sistema. Até a próxima =)
[/box]

Otimo Modelo Para Postagem Auto Explicativo é muito nice
continua assim . e otimo sistema
Sabe o Tempo ? - Que Tempo ? Que Eu Estava Atrás De Você.