SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Sokoban com PyS60
   fábio cerqueira
eu
    graduação na UECE
    bolsista no LARCES
    presidente da Acens, EJ da Computação
    estudo Python desde junho de 2008
    coordenador do PugCE
esta palestra é
    breve introdução ao PyS60
    case report do game Sokoban
    mostrar simplicidade do python para mobile
Symbian OS
    SO usado na maioria dos smarthphone Nokia
    consórcio formado por vários fabricantes
    plataforma S60
por que S60?
                isso já em 2007


   mais de 100 milhões de celulares vendidos
   comunidade ativa nos fóruns da Nokia
   Várias opções de linguagens e plataformas

                   python     C++
                                                javaME
                                    flashLite
e o PyS60?
          PyS60 1.4.*, versão 2.2.2 do CPython


   facilidade do Python
   boa parte da biblioteca padrão da linguagem
   será totalmente integrado no S60
   fácil acesso aos recursos do celular
                                                 GPS

                 câmera      audio          gráficos
                                      SMS
download...
                                          O meu é um   n78

        depende do modelo do celular
        descubra qual a sua versão → croozeus
        arquivos ↓
                                               X é sua versão
          PythonForS60_1_4_5X_.sis
          PythonScriptShell_1_4_5_X.sis


http://sourceforge.net/projects/pys60/files/pys60/
instalando
    envie para seu celular os arquivos .sis
    execute a instalação na ordem
      PythonForS60...sis
      PythonScriptShell...sis
Lista seus scripts
Shell


           Libera o acesso ao
           console BlueTooth




primeiro contato
hello world
      Elementos nativos de UI do PyS60


import appuifw
appuifw.note(u'Hello World')
módulos
 import   appuifw
 import   key_codes   Módulos que usei no jogo
 import   graphics
 import   e32
 import   sysinfo

 import messaging
 import inbox
 import telephone

 import camera
 import e32db
 ...
console   Cuidado: rebelde!!!
emulador
            Só pra windows...




           ...Epoc32winscwcpython
appuifw
   módulo para interação com o usuário
   menus, dialogs, title, tabs, body, exit, screen
     orientation...
   Canvas
estrutura
 da aplicação
key_codes
   constantes com os valores das teclas
graphics
   prove acesso as primitivas gráficas
   capacidade de carregar imagens
       class Image
e32
   funções não relacionadas a UI
   e que não estão na biblioteca padrão do Python
       class Ao_lock
o jogo
   jogo clássico e simples
   usa recursos básicos para jogos 2D
   é o meu “hello, world” para jogos 2D
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
classes
                Representa um mapa
   BMap
   Character         Personagem que atualiza o mapa


   BoxWorld
                   Funções gerais do jogo e eventos
canvas
 e callbacks
   base do jogo para desenho e eventos
       redraw
       event
menus
appuifw.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'))
        )
    )
]
código fonte
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
meus links
eu.links = {'blog': 'fabiocerqueira.wordpress.com',
           'bookmark': 'delicious.com/fabiocerqueira',
           'repository': 'github.com/fabiocerqueira',
           'microblog': 'twitter.com/fabiocerqueira'}
eu.mail = 'fabiocerqueira@pugce.org'
obrigado!

Mais conteúdo relacionado

Destaque

Apresentação Python Poli
Apresentação Python PoliApresentação Python Poli
Apresentação Python PoliRodrigo Lira
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
Introdução a Python - Python Poli
Introdução a Python  - Python PoliIntrodução a Python  - Python Poli
Introdução a Python - Python PoliRodrigo Lira
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o pythonRodrigo Lira
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 

Destaque (9)

REST com Python
REST com PythonREST com Python
REST com Python
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 
Apresentação Python Poli
Apresentação Python PoliApresentação Python Poli
Apresentação Python Poli
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Python Poli 2010
Python Poli 2010Python Poli 2010
Python Poli 2010
 
Introdução a Python - Python Poli
Introdução a Python  - Python PoliIntrodução a Python  - Python Poli
Introdução a Python - Python Poli
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o python
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 

Semelhante a Sokoban com PyS60

Mini-Curso Python para Symbian
Mini-Curso Python para SymbianMini-Curso Python para Symbian
Mini-Curso Python para SymbianMarcel Caraciolo
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Jonh Edson
 
Python no Celular
Python no CelularPython no Celular
Python no Celulariuridiniz
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
 
Introduction to Python for Symbian S60
Introduction to Python for Symbian S60Introduction to Python for Symbian S60
Introduction to Python for Symbian S60Marcel Caraciolo
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Flávio Ribeiro
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609gsroma
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Apresentação Minicurso PyS60
Apresentação Minicurso PyS60Apresentação Minicurso PyS60
Apresentação Minicurso PyS60Antonio Santana
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Cristiano Rafael Steffens
 
Apresentação pygame
Apresentação pygameApresentação pygame
Apresentação pygameDanilo Costa
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias IncluídasJonh Edson
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
 

Semelhante a Sokoban com PyS60 (20)

Mini-Curso Python para Symbian
Mini-Curso Python para SymbianMini-Curso Python para Symbian
Mini-Curso Python para Symbian
 
Curso Python for S60
Curso Python for S60Curso Python for S60
Curso Python for S60
 
Py S60
Py S60Py S60
Py S60
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0
 
Python no Celular
Python no CelularPython no Celular
Python no Celular
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
Introduction to Python for Symbian S60
Introduction to Python for Symbian S60Introduction to Python for Symbian S60
Introduction to Python for Symbian S60
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Apresentação Minicurso PyS60
Apresentação Minicurso PyS60Apresentação Minicurso PyS60
Apresentação Minicurso PyS60
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
Apresentação pygame
Apresentação pygameApresentação pygame
Apresentação pygame
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias Incluídas
 
OpenKinect, o Kinect para todos
OpenKinect, o Kinect para todosOpenKinect, o Kinect para todos
OpenKinect, o Kinect para todos
 
Python for Maemo
Python for MaemoPython for Maemo
Python for Maemo
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 

Sokoban com PyS60

  • 1. Sokoban com PyS60 fábio cerqueira
  • 2. eu  graduação na UECE  bolsista no LARCES  presidente da Acens, EJ da Computação  estudo Python desde junho de 2008  coordenador do PugCE
  • 3. esta palestra é  breve introdução ao PyS60  case report do game Sokoban  mostrar simplicidade do python para mobile
  • 4. Symbian OS  SO usado na maioria dos smarthphone Nokia  consórcio formado por vários fabricantes  plataforma S60
  • 5. por que S60? isso já em 2007  mais de 100 milhões de celulares vendidos  comunidade ativa nos fóruns da Nokia  Várias opções de linguagens e plataformas python C++ javaME flashLite
  • 6. e o PyS60? PyS60 1.4.*, versão 2.2.2 do CPython  facilidade do Python  boa parte da biblioteca padrão da linguagem  será totalmente integrado no S60  fácil acesso aos recursos do celular GPS câmera audio gráficos SMS
  • 7. download... O meu é um n78  depende do modelo do celular  descubra qual a sua versão → croozeus  arquivos ↓ X é sua versão PythonForS60_1_4_5X_.sis PythonScriptShell_1_4_5_X.sis http://sourceforge.net/projects/pys60/files/pys60/
  • 8. instalando  envie para seu celular os arquivos .sis  execute a instalação na ordem PythonForS60...sis PythonScriptShell...sis
  • 9. Lista seus scripts Shell Libera o acesso ao console BlueTooth primeiro contato
  • 10. hello world Elementos nativos de UI do PyS60 import appuifw appuifw.note(u'Hello World')
  • 11. módulos import appuifw import key_codes Módulos que usei no jogo import graphics import e32 import sysinfo import messaging import inbox import telephone import camera import e32db ...
  • 12. console Cuidado: rebelde!!!
  • 13. emulador Só pra windows... ...Epoc32winscwcpython
  • 14. appuifw  módulo para interação com o usuário  menus, dialogs, title, tabs, body, exit, screen orientation...  Canvas
  • 16. key_codes  constantes com os valores das teclas
  • 17. graphics  prove acesso as primitivas gráficas  capacidade de carregar imagens  class Image
  • 18. e32  funções não relacionadas a UI  e que não estão na biblioteca padrão do Python  class Ao_lock
  • 19. o jogo  jogo clássico e simples  usa recursos básicos para jogos 2D  é o meu “hello, world” para jogos 2D
  • 20. 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
  • 21. classes Representa um mapa  BMap  Character Personagem que atualiza o mapa  BoxWorld Funções gerais do jogo e eventos
  • 22. canvas e callbacks  base do jogo para desenho e eventos  redraw  event
  • 23. menus appuifw.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')) ) ) ]
  • 25. 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
  • 26. meus links eu.links = {'blog': 'fabiocerqueira.wordpress.com', 'bookmark': 'delicious.com/fabiocerqueira', 'repository': 'github.com/fabiocerqueira', 'microblog': 'twitter.com/fabiocerqueira'} eu.mail = 'fabiocerqueira@pugce.org'