1. Introducció
Les activitats de Sugar estan fetes utilitzant el llenguatge python. Hi ha dos formes de crear activitats noves per l’XO.
1. Utilitzar pyGTK -> Sugar està fet utilitzant pyGTK. És tracta d’un mòdul de python per fer activitats amb botons i widgets.
2. utilitzar pygame -> és un altre mòdul de python pensat per fer jocs.
Els dos mòduls, pyGTK i pygame els podeu trobar per diverses plataformes.
2. Passos per crear una nova activitat
En general cal seguir els passos següents per crear una activitat. Malgrat això, poden haver diferències en algun dels passos segons estem creant una activitat utilitzant pyGTK o pygame. En el nostre cas veurem com crear activitats utilitzant pygame.
-Crear un envoltori (wrapper) de sugar associat a l’activitat.
-Codificar l’activitat.
-Empaquetar l’activitat i distribuir-la.
-Executar-la en l’emulador.
Abans de començar amb la creació d’una nova activitat amb pygame cal descarregar el paquet OLPCGames (versió 1.4 o superior). Aquest paquet inclou un script que ens permetrà generar esquelets buits per les noves activitats que vulguem desenvolupar. Podeu descarregar OLPCGames AQUÍ.
Si esteu treballant directament en un XO podeu descarregar aquest paquet directament des de el navegador. El fitxer descarregat es pot accedir des de la consola o el terminal i es troba a directori /tmp.
A continuació cal descomprimir aquest paquet:
unzip OLPCGames-1.4.zip
ó
tar -zxf OLPCGames-1.4.tar.gz
3. Crear un envoltori per la nova activitat
Per generar una nova activitat utilitzarem l’script que proporciona OLPCGames. Cal fer:
cd OLPCGames-1.4/skeleton
./buildskel.py activityname “My Activity Name”
Aquest script ens crea l’estructura de directoris bàsics d’una activitat en OLPC i els fitxers bàsics corresponents.
Això ens crearà la següent estructura de directoris amb els següents fitxers importants.
NomActivitat.activity.activity
setup.py -> És l’script que hem d’executar per distribuir i empaquetar la nova activitat que fem.
NomActivitat.activity.activity/activity
iconeactivitat.svg -> conté l’icone de l’activitat que apareixerà a Sugar.
Mirar les següents pàgines per a informació detallada sobre aquests fitxers i el seu contingut:
http://wiki.laptop.org/go/Activity_Bundles
i
http://wiki.laptop.org/go/Sugar_Activity_Tutorial
Cada activitat de sugar està empaquetada en un paquet(bundle) que conté tots els recursos que l’activitat necessita per poder-se executar incloent el codi font. La informació relativa al “bundle” de cada activitat es pot trobar al directori:
NomActivitat.activity.activity/activity
4. Codificar
En aquest exemple no codificarem res. Només intentarem executar l’activitat per defecte que crea l’script buildskel.py que hem executat abans.
5. Testing i debug
Per provar l’activitat en un OLPC emulat la podem executar directament des del terminal o des de sugar.
Per executar-la des del terminal o des de la consola cal executar:
python run.py
L’activitat que acabem de crear mostra una pantalla blava de 800×600. Per poder-la veure, una vegada engegada l’activitat, fent Alt+0 passareu a la pantalla estàndard del sugar on podreu treballar amb l’activitat. Fent alt + 0 de nou podreu veure els missatges de debug i podeu aturar la activitat fent Control+Z
6. Empaquetar l’activitat i distribuir-la
Per distribuir l’activitat hem de modificar i executar l’script setup.py que tenim al directori principal de la nostra activitat. El contingut d’aquest fitxer ha de ser el següent (més informació sobre això aquí):
#!/usr/bin/env python
try:
from sugar.activity import bundlebuilder
bundlebuilder.start(”YourActivityName”)
except ImportError:
import os
os.system(”find ./ | sed ’s,^./,YourActivityName.activity/,g’ > MANIFEST”)
os.chdir(’..’)
os.system(’zip -r YourActivityName.xo YourActivityName.activity’)
os.system(’mv YourActivityName.xo ./YourActivityName.activity’)
os.chdir(’YourActivityName.activity’)
Abans d’exectutar setup.py cal crear el fitxer manifest:
hi ha un script que es diu buildmanifest que ho fa. S’ha d’exectutar abans que el setup.py.
Per tant els passos a seguir són:
./buildmanifest
./setup.py dist
(potser cal fer un chmod 755 setup.py abans d’executar els scripts anteriors)
Quan executem el setup.py es generarà un fitxer comprimit zip però amb extensió xo, amb tots els recursos de l’activitat necessaris per executar-la al directori principal de l’activitat.
YourActivityName-1.xo
El directori on hem de posar la nova activitat perquè aparegui quan engegem el Sugar és /home/olpc i crear un directori Activities si és que no existeix encara.
A dins del directori /home/olpc/Activities cal copiar el fitxer .xo que hem generat amb el setup.py i descomprimir-lo amb :
unzip YorActivityName-1.xo
això crearà el següent directori per la nova activitat:
/home/olpc/Activities/YourActivityName.activity
Reiniciar Sugar (killall -i X com a root).
7. Executar l’activitat des de Sugar
Quan Sugar reinicii tindreu al marc, a la part inferior la nova activitat creada.
8. Pàgines consultades
http://wiki.laptop.org/go/Game_development_HOWTO
http://wiki.laptop.org/go/Sugar_Activity_Tutorial
http://wiki.laptop.org/go/Creating_an_Activity
Per: Mª José Casany
