GameArgs: Pré-configurando seu jogo
Como mencionado anteriormente, a função ofInit
aceita alguns argumentos interessantes de pré-inicialização do seu jogo. Cobriremos, aqui, alguns deles, que são essenciais e vitais para a qualidade da sua aplicação.
A função ofInit
aceita, por padrão, nenhum argumento, ou um vetor de strings (std::vector<std::string>
) contendo configurações iniciais para o seu jogo, como título da janela, localização do ícone da janela em runtime, etc.
Abra o arquivo src/main.cpp
e, onde se encontra a função ofInit
, substitua-a por:
ofInit({
"wname=Meu Jogo",
"datad=MeuJogo",
"winsz=800x600",
"frmrt=60c"
});
A função, agora, recebe como argumento uma lista de strings separada por vírgula, e envolta em colchetes.
Esta é uma das formas práticas de inicialização de um vetor, e a mais sucinta para se passar o vetor de argumentos de inicialização para esta função.
É importante ressaltar que as strings devem ser cuidadosamente separadas por vírgulas, uma vez que, por padrão, C++ concatenará duas strings que não estejam separadas por algum separador padrão da linguagem (como vírgulas ou ponto-e-vírgulas).
Estes argumentos, referidos na documentação da Oficina como GameArgs, são argumentos de inicialização padrão para o seu jogo. Cada argumento é uma string de exatamente cinco caracteres, seguidos de um caractere =
, e dos argumentos que cada GameArg espera. Os GameArgs aqui usados são:
wname
: Define um nome da janela. Pode incluir espaços;datad
: Define o nome da pasta de dados do jogo. Uma pasta de dados do jogo é aquela que possui texturas e scripts de um jogo. Por padrão, o jogo primeiramente procura por seus recursos na atual pasta de execução do programa. Se não encontra, procura nas pastas onde o sistema operacional normalmente armazena dados de aplicativos. No Linux, estas pastas são/usr/share/<nome da pasta>
,/usr/local/share/<nome da pasta>
e/home/<usuário>/.local/share/<nome da pasta>
; no Windows, sãoC:\Arquivos de Programas\<nome da pasta>
ouC:\Arquivos de Programas (x86)\<nome da pasta>
, dependendo da versão e arquitetura do seu sistema operacional. No nosso caso, nossos arquivos de recursos estarão emres
, que deverá ser instalada, quando o jogo for publicado, em uma destas pastas, sob o subdiretório<nome da pasta>/res
ou, mais precisamente,MeuJogo/res
.winsz
: Define um tamanho em pixels para a janela do aplicativo. Neste caso, a janela terá um tamanho de 800x600 e estará centralizada no monitor principal.frmrt
: Define a configuração de quadros por segundo (FPS) da aplicação. Aqui, forçamos nossa aplicação (c
, de "capped"/limitado) a um máximo de 60 quadros por segundo; ao ultrapassar esse valor, o jogo força um delay na aplicação até o próximo segundo.
Para mais informações de GameArgs e outros valores/literais que podem ser usados nos GameArgs apresentados, consulte a documentação da OficinaFramework.
Após está alteração, volte à pasta raiz do seu jogo, e compile-o novamente. Você deve ver uma nova janela preta, porém desta vez menor, e com outro título: