25.11.2014 Views

Treball de recerca - IES Narcís Monturiol

Treball de recerca - IES Narcís Monturiol

Treball de recerca - IES Narcís Monturiol

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!