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

400 views

Published on

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

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
400
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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)

×