laira 9c9bde8aa6 criei README para raiz e para o pacote que carrega midia 3 yıl önce
..
audio 9c60b688d4 initial commit 3 yıl önce
img 9c60b688d4 initial commit 3 yıl önce
lang 9c60b688d4 initial commit 3 yıl önce
README.md 9c9bde8aa6 criei README para raiz e para o pacote que carrega midia 3 yıl önce
carregandoAudio.js 9c9bde8aa6 criei README para raiz e para o pacote que carrega midia 3 yıl önce
carregandoImagem.js 9c9bde8aa6 criei README para raiz e para o pacote que carrega midia 3 yıl önce
carregandoLinguagem.js 9c9bde8aa6 criei README para raiz e para o pacote que carrega midia 3 yıl önce
index.html 9c9bde8aa6 criei README para raiz e para o pacote que carrega midia 3 yıl önce

README.md

Por que carregar arquivos de midia para o cache

O iFractions utiliza imagens, audios e arquivos de idioma durante a execucao. Assim, e necessario que antes que qualquer um desses elementos sejam chamados no codigo exista uma garantia de que estes estejam carregados no cache.

Levando em consideracao que o iFractions eh um aplicativo de pagina unica (single page application), uma "mudanca de tela" dentro do jogo na verdade corresponde a desenhar novos elementos graficos no Canvas (HTML), sobrescrevendo a tela anterior.

Dessa forma, diferente de uma aplicacao de varias paginas, onde a cada carregamento os elementos de midia ficam prontos antes do codigo executar, ele utiliza chamadas assincronas tanto para carregar os arquivos base necessarios no inicio do programa, como para carregar novos elementos durante a execucao.

Para isso, arquivos de idioma e audio sao carregados usando Fetch API e imagens usando HTMLImageElement, ambos nativos do Javascript.

O que voce vai encontrar nesse pacote

(Este pacote deve ser descarregado no servidor local)

Ele contem um arquivo index.html que apresenta uma aplicacao de pagina unica onde voce pode carregar dinamicamente e utilizar os seguintes tipos de midia:

  • imagem
  • audio
  • arquivos de idioma

Obs.: um elemento so pode ser usado se tiver sido anteriormente carregado no cache.

Carregando e usando imagens

Em: carregandoImagem.js

funcao nome
carregamento loadImages()
uso drawImages()

usa HTMLImageElement

Carregando e usando audio

Em: carregandoAudio.js

funcao nome
carregamento loadAudios()
uso playAudio()

usa Fetch API

Carregando arquivos de idioma

Em: carregandoLinguagem.js

funcao nome
carregamento loadLangs()
uso printLangs()

usa Fetch API

Sobre o formato dos arquivos de linguagem usados no ifractions

Os formato dos arquivos de idioma usados pelo iFractions (como pode ser visto aqui em /lang) seguem a seguinte estrutura:

  • os arquivos nao possuem extensao
  • seguem o padrao chave=traducao
  • a quebra de linha indica fim da traducao

Assim, a funcao de tratamento de linguagem trata os arquivos que seguem essa formatacao.

Uso no iFractions

No iFractions, as funcoes de carregamento e uso estao definidas em /js/gameMechanics.js:

Carregamento:

  • game.load.<tipo de midia>(<urls>)
    • Carrega arquivos no cache

Uso:

  • game.add.image(<args>) e game.add.sprite(<args>)
    • adiciona imagem na tela
  • game.audio.<nome>.play()
    • toca audio
  • game.lang.<chave>
    • retorna frase associada a aquela chave na linguagem selecionada

Para cada estado, se for necessario, arquivos de midia sao carregados dentro da funcao preload(), para serem usados no resto do codigo. Essa funcao aguarda que tudo seja carregado antes de continuar o codigo.