Treball de recerca - IES NarcÃs Monturiol
Treball de recerca - IES NarcÃs Monturiol
Treball de recerca - IES NarcÃs Monturiol
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Bubble Racer: Com crear un vi<strong>de</strong>ojoc amb Blen<strong>de</strong>r<br />
Robert Planas<br />
Aquesta funció és pròpia <strong>de</strong> Python i no requereix importar llibreries, però el motor <strong>de</strong> joc sí<br />
que necessita algunes llibreries. La llibreria <strong>de</strong> Blen<strong>de</strong>r, pel que fa referencia al game engine<br />
és la bge (Blen<strong>de</strong>r Game Engine). Per importar qualsevol llibreria usem la funció import. A<br />
diferencia <strong>de</strong> les llibreries pròpies <strong>de</strong> Python, les llibreries <strong>de</strong> Blen<strong>de</strong>r només estan<br />
disponibles quan iniciem el motor <strong>de</strong> joc, <strong>de</strong> manera que amb el botó “Run Script” ens saltaria<br />
un error conforme l'interpret no a trobat la llibreria. A continuació un exemple <strong>de</strong> script senzill<br />
<strong>de</strong> bge:<br />
A la primera línia <strong>de</strong>l script trobem marcat en verd un comentari. Per crear un comentari<br />
escrivim #. Els comentaris són línies que no seran llegi<strong>de</strong>s per l'interpret i po<strong>de</strong>n contenir<br />
qualsevol tipus d'informació, normalment orientada a entendre el codi. A la segona línia<br />
po<strong>de</strong>m veure com s'importa la llibreria bge, tal i com s'ha explicat avanç. És comú en<br />
programació <strong>de</strong>ixar algunes línies en blanc per separar estructures <strong>de</strong> codi i facilitar així la<br />
posterior feina d'anàlisis i correcció.<br />
A la quarta línia creem una variable controller que conte una funció especifica. Això ens serà<br />
útil per no escriure cada vegada la funció sencera. Com po<strong>de</strong>m veure les funcions estan<br />
separa<strong>de</strong>s per categories, po<strong>de</strong>m accedir a cada categoria usant el punt. En aquest cas dins <strong>de</strong><br />
la llibreria o biblioteca bge s'acce<strong>de</strong>ix a la classe logic i a la funció getCurrentController().<br />
Aquesta funció fa referencia al controlador actual. A continuació amb la variable scene po<strong>de</strong>m<br />
veure el mateix, però en aquest cas especifica l'escena actual. A la sisena línia <strong>de</strong>l codi veiem<br />
com usar la variable controller per abreviar funcions. En aquest cas owner fa referencia a<br />
l'objecte que executa l'script. És a dir, ara obj senyala a l'objecte que executa l'script. Ho<br />
podríem haver fet sense fer servir una variable controller, però la funció hages quedat més<br />
llarga: obj = bge.logic.getCurrentController().owner. De la mateixa manera podríem moure<br />
l'objecte com veiem a la línia 7.<br />
No utilitzar abreviacions també és valid, però és recomanable l'ús <strong>de</strong> abreviatures per quan els<br />
scripts són grans, per no haver d'escriure sempre la funció sencera:<br />
Pàg. 16