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!

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
  • 15.
  • 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')) ) ) ]
  • 24.
  • 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'
  • 27.