sokoban com pys60
DESCRIPTION
Case Report sobre o desenvolvimento do game Sokoban em PyS60 para o primeiro evento do PUGCETRANSCRIPT
![Page 1: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/1.jpg)
Sokoban com PyS60fábio cerqueira
![Page 2: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/2.jpg)
eu graduação na UECE
bolsista no LARCES
presidente da Acens, EJ da Computação
estudo Python desde junho de 2008
coordenador do PugCE
![Page 3: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/3.jpg)
esta palestra é breve introdução ao PyS60
case report do game Sokoban
mostrar simplicidade do python para mobile
![Page 4: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/4.jpg)
Symbian OS SO usado na maioria dos smarthphone Nokia
consórcio formado por vários fabricantes
plataforma S60
![Page 5: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/5.jpg)
por que S60?
mais de 100 milhões de celulares vendidos
comunidade ativa nos fóruns da Nokia
Várias opções de linguagens e plataformas
isso já em 2007
python
flashLite
C++ javaME
![Page 6: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/6.jpg)
e o PyS60? facilidade do Python
boa parte da biblioteca padrão da linguagem
será totalmente integrado no S60
fácil acesso aos recursos do celular
câmeraSMSaudio gráficos
PyS60 1.4.*, versão 2.2.2 do CPython
GPS
![Page 7: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/7.jpg)
download... depende do modelo do celular
descubra qual a sua versão → croozeus
arquivos ↓
PythonForS60_1_4_5X_.sis
PythonScriptShell_1_4_5_X.sis
O meu é um n78
X é sua versão
http://sourceforge.net/projects/pys60/files/pys60/
![Page 8: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/8.jpg)
instalando envie para seu celular os arquivos .sis
execute a instalação na ordem
PythonForS60...sis
PythonScriptShell...sis
![Page 9: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/9.jpg)
primeiro contato
Lista seus scriptsShell
Libera o acesso aoconsole BlueTooth
![Page 10: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/10.jpg)
hello world
import appuifwappuifw.note(u'Hello World')
Elementos nativos de UI do PyS60
![Page 11: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/11.jpg)
módulosimport appuifwimport key_codesimport graphicsimport e32import sysinfo
import messagingimport inboximport telephone
import cameraimport e32db...
Módulos que usei no jogo
![Page 12: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/12.jpg)
console Cuidado: rebelde!!!
![Page 13: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/13.jpg)
emuladorSó pra windows...
...\Epoc32\winscw\c\python
![Page 14: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/14.jpg)
appuifw módulo para interação com o usuário
menus, dialogs, title, tabs, body, exit, screen
orientation...
Canvas
![Page 15: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/15.jpg)
estrutura da aplicação
![Page 16: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/16.jpg)
key_codes constantes com os valores das teclas
![Page 17: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/17.jpg)
graphics prove acesso as primitivas gráficas
capacidade de carregar imagens
class Image
![Page 18: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/18.jpg)
e32 funções não relacionadas a UI
e que não estão na biblioteca padrão do Python
class Ao_lock
![Page 19: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/19.jpg)
o jogo jogo clássico e simples
usa recursos básicos para jogos 2D
é o meu “hello, world” para jogos 2D
![Page 20: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/20.jpg)
mapas salvos no próprio código
uma lista de dicionários:
{“text”:”string do mapa”, “size”: (w,h), “pos”: (x,y)}
símbolos representando partes da imagem
![Page 21: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/21.jpg)
classes BMap
Character
BoxWorld
Representa um mapa
Personagem que atualiza o mapa
Funções gerais do jogo e eventos
![Page 22: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/22.jpg)
canvas e callbacks
base do jogo para desenho e eventos
redraw
event
![Page 23: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/23.jpg)
menusappuifw.app.menu = [ (u"Reiniciar", lambda:self.startMap(self.num_map)), (u"Ir para", self.changeMap), ( u"Modo", ( (u"Retrato", lambda:self.modeGame('portrait')), (u"Paisagem", lambda:self.modeGame('landscape')) ) )]
![Page 24: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/24.jpg)
código fonte
![Page 25: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/25.jpg)
referências Wiley Mobile Python Rapid Prototypingof
Applications on the Mobile Platform
Python For S60 1.4.5
http://pys60.garage.maemo.org/doc/s60/s60.html
![Page 26: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/26.jpg)
meus linkseu.links = {'blog': 'fabiocerqueira.wordpress.com',
'bookmark': 'delicious.com/fabiocerqueira',
'repository': 'github.com/fabiocerqueira',
'microblog': 'twitter.com/fabiocerqueira'}
eu.mail = '[email protected]'
![Page 27: Sokoban com PyS60](https://reader034.vdocuments.net/reader034/viewer/2022042715/559e5b4c1a28ab3c018b45b3/html5/thumbnails/27.jpg)
obrigado!