Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Implementação de Aplicações Móveis
e Jogos com Python
Internet Tablets
Internet Tablets
Internet Tablets
 O que são?
 Dispositivos móveis capazes de conectar-se a internet através
de redes wireless ou bluetoo...
Internet Tablets
 O que são?
 Dispositivos móveis capazes de conectar-se a internet através
de redes wireless ou bluetoo...
Internet Tablets
 Sistemas Operacionais (baseados em Linux)
 Maemo
 Mamona
 Ubuntu (9.04)
 Gentoo
O OpenEmbedded
 O que é?
 Build Framework pra embedded Linux
 bitbake
 Arquivos de metadata
Quem usa?
 OpenMoko
 Idéia de desenvolvimento de celular 100% livre
Quem usa?
 Ångström
 Distribuição mais “madura” do OE
 Dispositivos que aceitam essa distro:
 Nokia 770 Internet Table...
Quem usa?
 BeagleBoard
● HW baseado em OMAP3
● Baixo custo
– $ 149
● Baixo consumo de energia
– Máximo 2W
● http://beagle...
Quem usa?
 BeagleBoard
U-boot: acesso via Minicom
sudo apt-get install minicom
minicom --setup
minicom
Quem usa?
Quem usa?
 Palm Pre
 Aposta da Palm em reverter o jogo
 WebOS
Quem usa?
 KaeilOS
 Fabricante de Hardware
 Suporte Pago
Internet Tablets
 Projetos e Softwares
 Mozilla Fennec (Firefox pra Mobile)
 Brisa UPnP
 Canola
 CarMan
 Tapioca Fra...
Internet Tablets
Demo!
Off-Topic: Arduino
● O que é?
É um projeto de Hardware e
Software Livre voltado para
artistas, designers, hobbystas ou
qualquer um interessad...
● O que é?
 Arduino Programming Language (Baseada em Wiring)
 Arduino Development Environment (IDE baseada em Processing...
● Hardware
 Microcontrolador Atmega168
 RISC (131 instruções)
 24 Mhz
 NVM de 16KBytes (2k usados no bootloader)
 1KB...
● Software Estrutura Básica
ArduinoArduino
Arduino
● Ciclo de Desenvolvimento
● Shields
Arduino
● Computadores (lado Computador)
PySerial
Arduino
Arduino
● Dispositivos Móveis
Pra PyS60 e Bluetooth: lightblue
Jogos com Python
Jogos com Python
PyGame
 Criando um joguinho do tipo Arkanoid
PyGame
 A Classe bouncer
class Bouncer(pygame.sprite.Sprite):
def __init__(self, startpos):
pygame.sprite.Sprite.__init__...
PyGame
 A Classe ball
class Ball(pygame.sprite.Sprite):
"""classe para a bola"""
def __init__(self, startpos):
pygame.spr...
PyGame
 Checando eventos (já no mainloop!)
#checa eventos de teclado
for event in pygame.event.get():
if event.type == py...
PyGame
 Reagindo a colisões
if bouncer.rect.colliderect(ball.rect):
if ball.speed[1] > 0:
ball.speed[1] = -ball.speed[1]
PyGame
 Atualizando a tela e redesenhando
#atualiza os objetos
ball.update()
bouncer.update()
#redesenha a tela
screen.fi...
Tudo Pronto!
PyGame
Exerc cio!í
Faça um pong!
Práticas de Conectividade
(web e bluetooth)
Upcoming SlideShare
Loading in …5
×

Implementação de Aplicações Móveis e Jogos com Python - Aula 6

Implementação de Aplicações Móveis e Jogos com Python

  • Be the first to comment

  • Be the first to like this

Implementação de Aplicações Móveis e Jogos com Python - Aula 6

  1. 1. Implementação de Aplicações Móveis e Jogos com Python
  2. 2. Internet Tablets
  3. 3. Internet Tablets
  4. 4. Internet Tablets  O que são?  Dispositivos móveis capazes de conectar-se a internet através de redes wireless ou bluetooth (agora também com 3g!)
  5. 5. Internet Tablets  O que são?  Dispositivos móveis capazes de conectar-se a internet através de redes wireless ou bluetooth.  Hardware  Tela resolução de 800x480  Processador ARM-Based (330mhz ~ 600mhz)  1GB~128MB Memória RAM  WLAN (bg) e Bluetooth  Telas Sensíveis ao toque  Teclado QWERTY embutido (em alguns)
  6. 6. Internet Tablets  Sistemas Operacionais (baseados em Linux)  Maemo  Mamona  Ubuntu (9.04)  Gentoo
  7. 7. O OpenEmbedded  O que é?  Build Framework pra embedded Linux  bitbake  Arquivos de metadata
  8. 8. Quem usa?  OpenMoko  Idéia de desenvolvimento de celular 100% livre
  9. 9. Quem usa?  Ångström  Distribuição mais “madura” do OE  Dispositivos que aceitam essa distro:  Nokia 770 Internet Tablet  HTC Universal / iMate JasJar  Motorola A780  Psion| Teklogix NetBook Pro  Gumstix and Kouchuk-Bars  Beagle Board  Pandora
  10. 10. Quem usa?  BeagleBoard ● HW baseado em OMAP3 ● Baixo custo – $ 149 ● Baixo consumo de energia – Máximo 2W ● http://beagleboard.org – Esquema de HW aberto o/
  11. 11. Quem usa?  BeagleBoard
  12. 12. U-boot: acesso via Minicom sudo apt-get install minicom minicom --setup minicom Quem usa?
  13. 13. Quem usa?  Palm Pre  Aposta da Palm em reverter o jogo  WebOS
  14. 14. Quem usa?  KaeilOS  Fabricante de Hardware  Suporte Pago
  15. 15. Internet Tablets  Projetos e Softwares  Mozilla Fennec (Firefox pra Mobile)  Brisa UPnP  Canola  CarMan  Tapioca Framework  Maemo Community (No Google Summer of Code)
  16. 16. Internet Tablets Demo!
  17. 17. Off-Topic: Arduino
  18. 18. ● O que é? É um projeto de Hardware e Software Livre voltado para artistas, designers, hobbystas ou qualquer um interessado em criar objetos e ambientes interativos. Arduino
  19. 19. ● O que é?  Arduino Programming Language (Baseada em Wiring)  Arduino Development Environment (IDE baseada em Processing)  Pode ser feito a mão (Paperduino, Severino, Toscoduino, etc)  Múltiplas derivações  Comunicação fácil  Ciclo de desenvolvimento rápido  Barato! Arduino
  20. 20. ● Hardware  Microcontrolador Atmega168  RISC (131 instruções)  24 Mhz  NVM de 16KBytes (2k usados no bootloader)  1KByte de SRAM  Portas AD  UART  6v – 20v (Recomendado 7v a 12v) Arduino
  21. 21. ● Software Estrutura Básica ArduinoArduino
  22. 22. Arduino ● Ciclo de Desenvolvimento
  23. 23. ● Shields Arduino
  24. 24. ● Computadores (lado Computador) PySerial Arduino
  25. 25. Arduino ● Dispositivos Móveis Pra PyS60 e Bluetooth: lightblue
  26. 26. Jogos com Python
  27. 27. Jogos com Python
  28. 28. PyGame  Criando um joguinho do tipo Arkanoid
  29. 29. PyGame  A Classe bouncer class Bouncer(pygame.sprite.Sprite): def __init__(self, startpos): pygame.sprite.Sprite.__init__(self) #direcao: 1=direita, -1=esquerda self.direction = 1 #carrega a imagem e a posiciona na tela self.image, self.rect = load_image('bouncer.gif') self.rect.centerx = startpos[0] self.rect.centery = startpos[1] def update(self): #multiplicamos x por 3 pro bouncer mover-seum pouco mais rápido! self.rect.move_ip((self.direction*3,0)) #se o bouncer atingir os limites da tela, invertemos a sua direcao if self.rect.left < 0: self.direction = 1 elif self.rect.right > width: self.direction = -1
  30. 30. PyGame  A Classe ball class Ball(pygame.sprite.Sprite): """classe para a bola""" def __init__(self, startpos): pygame.sprite.Sprite.__init__(self) self.speed = [2,2] #carrega a imagem e a posiciona na tela self.image, self.rect = load_image('ball.gif') self.rect.centerx = startpos[0] self.rect.centery = startpos[1] #salva a posicao inicial para ser reutilizada #quando a bola sair da tela pelo fundo self.init_pos = startpos def update(self): self.rect.move_ip(self.speed) #se a bola atingir os lados da tela, inverte a #direcao horizontal (x) if self.rect.left < 0 or self.rect.right > width: self.speed[0] = -self.speed[0] #se a bola atingir o topo da tela, inverte a #posicao vertical (y) if self.rect.top < 0: self.speed[1] = -self.speed[1] #se a bola atingir o fundo da tela, reseta #a sua posicao if self.rect.bottom > height: self.rect.centerx = self.init_pos[0] self.rect.centery = self.init_pos[1]
  31. 31. PyGame  Checando eventos (já no mainloop!) #checa eventos de teclado for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: bouncer.direction = -1 if event.key == pygame.K_RIGHT: bouncer.direction = 1
  32. 32. PyGame  Reagindo a colisões if bouncer.rect.colliderect(ball.rect): if ball.speed[1] > 0: ball.speed[1] = -ball.speed[1]
  33. 33. PyGame  Atualizando a tela e redesenhando #atualiza os objetos ball.update() bouncer.update() #redesenha a tela screen.fill(black) screen.blit(ball.image, ball.rect) screen.blit(bouncer.image, bouncer.rect) pygame.display.flip()
  34. 34. Tudo Pronto!
  35. 35. PyGame Exerc cio!í Faça um pong!
  36. 36. Práticas de Conectividade (web e bluetooth)

×