Implementando um banco de dados sqlite3 no Blender Game Engine-passo-á passo parte 2

160 3

Vou nesta parte da série de artigos mostrar como coloquei o módulo sqlite3 no escopo padrão do Blender, recorde-se que estou usando o Blender 2.46 e o Portable Python 1.0, ambos rodando directamente do PenDrive, o que impossibilita o chamamento automático dos módulos externos á Engine. Se é novo por aqui, clique e veja a primeira parte da implementação do banco de dados sqlite3 na gam engine do blender

Antes de começarmos, você precisa saber como funciona a importação de módulos em Python: Para que um módulo possa ser importado, ele deve estar dentro de um directório contido na variável path do Python, você pode saber mais sobre path acessando a aula do nosso curso de programação em Python, que fala sobre módulos em Python.

Agora que já sabe como funciona o sistema de módulos em Python, podemos ir ao Game Engine realizar o nosso primeiro teste!

Pois é, fui ao Game Engine e a primeira ideia que apareceu foi: Talvez sqlite3 já é um módulo nativo da Engine, o que não seria de estranhar, pois é normal todo jogo necessitar de um banco de dados. Então escrevi um pequeno script na no editor de textos do blender:

import sqlite3

Pressionei o ALT+P habitual para testar o script, e ai apareceu: a mensagem de erro:

No module named sqlite3.

Ok, o Blender não possui suporte nativo ao módulo sqlite3. Adicionar o directório raiz do Python ao path do Windows também não deu em nada, então decidi copiar a pasta do sqlite3 que se encontra no directório lib do Python para o directório raiz do Blender, visto que este está no path. Agora quando fui testar o mesmo script acima, a mensagem foi:

No module named _sqlite3

Há então o módulo sqlite3, importa um outro módulo, o _sqlite3! Então vamos procurar este módulo. Navegando pelos directórios do Python, fui encontrar este módulo dentro do directório DLL, chama-se _sqlite3.pyd. Copiei este módulo para dentro do directório sqlite3 que eu tinha acabado de colocar na raiz do Blender e fui fazer o teste do script novamente. Desta vez a mensagem não foi do Blender, mas sim do Windows e dizia o seguinte:

This Application failed to start because sqlite3.dll was not found....

Só isso! Então vamos copiar a DLL que se encontra dentro do directório DLL do Python para o nosso directório sqlite3 no Blender. Fazendo o teste de novo, nenhuma mensagem de erro nem nada, e ai veio o momento de suspense: Será que funcionou? Vamos fazer um outro teste para provar isso, seguindo a a logica que se segue( lógica que se segue??? como seguir uma lógica se ela se segue?): Se o import funcionou, o Blender executará a linha seguinte do script, então vamos criar um novo script, desta vez com duas linhas:

import sqlite3
print ‘funcionou’

E imagina o que apareceu na consola: Funcionou!!! Mas espera um pouco: Nem todos os módulos que funcionam comALT+P podem funcionar na Engine! Então vamos criar um logicbric para o cubo padrão, só para ver se ainda funciona.E finalmente o susto passou! O passo seguinte será criar um jogo de teste que use um banco de dados, mas para isso tenho de baixar a documentação oficial do sqlite3!

(Visited 33 times, 1 visits today)

Elisio Leonardo

Elisio Leonardo is an experienced Web Developer, Solutions Architect, Digital Marketing Expert, and content producer with a passion for technology, artificial intelligence, web development, and entertainment. With nearly 15 years of writing engaging content on technology and entertainment, particularly Comic Book Movies, Elisio has become a trusted source of information in the digital landscape.