Estrutura

A estrutura de arquivos do BGForce possui um padrão conciso e otimizado para o uso com o Blender Game Engine e UPBGE. A seguir será explicado o objetivo de cada pasta e arquivo relevante do framework.

database

A pasta database contém definições de estruturas de dados utilizadas pelo framework. Veja mais em Database.

fonts

A pasta fonts contém as fontes utilizadas pelos widgets de interface de usuário do framework. Basta substituir os arquivos de fontes existentes para alterar as fontes padrão da interface de usuário.

lang

A pasta lang contém os arquivos de tradução usados pelos widgets com suporte a texto. O modelo dos arquivos de tradução segue o padrão: "PalavraChave" : "Tradução", onde a palavra chave deve existir e ser igual em todos os arquivos da pasta lang, e a tradução deve conter o texto traduzido de fato.

Os dados podem ser acessados como dicionários ao importar a variável lang do módulo scripts/bgf (porém raramente isso será necessário, uma vez que os widgets de interface de usuário automatizam o processo de tradução).

Exemplo

Levando em conta um script qualquer que esteja dentro da pasta scripts, para importar lang use o código:

from .bgf import lang

# Obter a propriedade lida de lang/English.json
langPrevious = lang["English"]["Previous"]

scripts

A pasta scripts contém os scripts da lógica de programação do jogo. Em geral, o usuário está livre para adicionar seus próprios scripts à esta pasta.

Observação: Recomendamos que não altere o conteúdo da pasta scripts/bgf e nem remova a linha 1 do script scripts/__init__.py (onde há a importação do scripts/bgf), pois através destes intermediários que o framework carregará os dados e funcionará corretamente.

scripts/bgf

O módulo scripts/bgf contém toda a lógica do framework. Recomendamos que não altere o seu conteúdo.

scripts/__init__.py

O script scripts/__init__.py roda a inicialização do framework. O usuário está livre para editar este arquivo à vontade contanto que não remova a linha 1 (onde há a importação do módulo scripts/bgf).

scripts/computed.py

O script scripts/computed.py possui definições de funções que retornam informações dinâmicas, e podem ser usadas nos widgets em qualquer propriedade que utilize uma expressão em Python. Veja mais em Variáveis Computadas.

scripts/operators.py

O script scripts/operators.py permite que funções sejam facilmente executadas através de mensagens. O usuário está livre para editar este script à vontade. Uma vez que uma função que receba dois argumentos seja definida (def nomeDaFuncao(cont, args="")) será possível executar as funções através de uma mensagem como NomeDaFuncao:Argumentos. Veja mais em Operadores Customizados.

sounds

A pasta sounds contém os sons utilizados no jogo. Ao iniciar o jogo, a lista de todos os sons dentro desta pasta será carregada, e permitirá ao framework reproduzir estes sons através de mensagens específicas para esse fim. Ela contém duas subpastas.

sounds/bgm

A pasta sounds/bgm contém as músicas que serão tocadas no jogo. O usuário está livre para excluir as músicas de exemplo existentes nesta pasta e adicionar suas próprias músicas, que poderão ser facilmente reproduzidas através de uma mensagem PlayBgm:NomeDaMusica ou definindo a música para uma propriedade "Bgm" em algum contexto em database/Contexts.json.

sounds/sfx

A pasta sounds/sfx contém os efeitos sonoros que serão tocados no jogo. O usuário está livre para excluir os sons de exemplo existentes nesta pasta e adicionar seus próprios sons, que poderão ser facilmente reproduzidos através de uma mensagem PlaySfx:NomeDoSom.

textures

A pasta textures contém as texturas do jogo. Em geral, o usuário está livre para adicionar suas próprias texturas nesta pasta conforme a necessidade.

textures/gui

A pasta textures/gui contém as texturas dos widgets de interface de usuário. O usuário está livre para personalizar as texturas existentes para criar seu próprio tema de interface de usuário.

LibBgf.blend

O arquivo LibBgf.blend contém todos os grupos e componentes (cenas) necessários para o funcionamento do framework. Nele se encontram:

  • Grupos de widgets de interface de usuário
  • Cenas de componentes
    • ScnManager (gerenciador do BGForce)
    • ScnMouseCursor (cursor do mouse personalizável)

Basta linkar (File > Link) os dados a partir de outro arquivo blend para utilizar suas funcionalidades.

Config.json

O arquivo Config.json contém as configurações de usuário salvas do jogo. Este arquivo é criado com base no arquivo de definições padrão database/Config.json, que é seu modelo. Desta forma, este arquivo é atualizado sempre as configurações de usuário são salvos, diferente de seu modelo que é estático. Este arquivo pode não existir enquanto o usuário não solicitar o salvamento de configurações através do operador SaveConfig.

Os dados podem ser acessados como um dicionário ao importar a variável config do módulo scripts/bgf.

Exemplo

Levando em conta um script qualquer que esteja dentro da pasta scripts, para importar config use o código:

from .bgf import config

# Obter propriedade lida de Config.json
volSfx = config["VolSfx"]