×
Namespaces

Variants
Actions

Archived:Como desenvolver o jogo brick-breaker em PySymbian - Parte 1

From Nokia Developer Wiki
Jump to: navigation, search

Archived.pngAquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.

Acredita-se que este artigo ainda seja válido no contexto original (quando ele foi escrito)


Article Metadata

Artigo
Tradução:
Por ivocalado
Última alteração feita por hamishwillee em 07 May 2013

Neste artigo irei explicar como criar um jogo Brick-Breaker em PySymbian. O jogo Brick-Breaker é um jogo arcade. Neste jogo, o jogado controla uma barra horizontal pela tela tentando rebater uma bola. O objetico do jogo é destruir todos os tijolos que ficam no topo da tela.

Contents

Ferramentas de desemvolvimento

1. Editor de texto - Notepad é sufuciente.

2. Python para S60 - preferivelmente utilizar versão PySymbian 1.4.5 stable release

3. PySymbian script shell - preferivelmente utilizar versão PySymbian 1.4.5 stable release


As ferramentas para PySymbian podem ser baixadas aqui.


Os seguintes módulos serão usados no desenvolvimento desta aplicação:

  • Módulo appuifw
  • Módulo sysinfo
  • Módulo graphics
  • Módulo e32
  • Módulo key_codes
  • Módulo random
  • Módulo math
  • Módulo time


Funções

As seguintes funções serão usadas no Brick Breaker.


1. draw_screen: desenha linhas negras em canvas.
2. draw_slider: desenha a barra deslizante.
3. leftkey: controla a barra deslizante através da tecla para esquerda.
4. rightkey: controla a barra deslizante através da tecla para direita.
5. draw_bricks: desenha o número de tijolos.
6. erase_bricks: apaga os tijolos.

Part 1

Neste artigo (Parte 1) nós iremos discutir as diferentes funções realizadas pela barra deslizando em detalhes.

Inicializando os parametros da barra deslizante

Antes de discutir qualquer função em detalhe - iremos definir alguns dos parametros do objeto em questão.

#SLIDER PARAMETERS#####
 
SliderX1=120
SliderY1=305
SliderX2=160
SliderY2=315
SliderSpeed=22
 
SliderColor=RED
 
import sysinfo
TotalScreenWidth=sysinfo.display_pixels()[1]

draw_screen()

Usando esta função, nós criamos uma tela negra em canvas. A definição de draw_screen() apresenta-se a seguir:

#definindo a função de desenho
def draw_screen():
#Configura a tela cheia
appuifw.app.screen = 'full'
 
#Variáveis globais para a UI
global canvas
canvas = appuifw.Canvas(redraw_callback=handle_redraw)
appuifw.app.body = canvas
appuifw.app.exit_key_handler = quit
 
#Variáveis globais para a UI
global img
img = graphics.Image.new(canvas.size)
 
#Limpa a iamgem
img.clear(BLACK)
handle_redraw(None)


draw_slider()

Usando esta função, nós criamos uma barra horizontal em canvas que será movimentada usando atalhos do teclado. A definição de draw_screen() apresenta-se a seguir:

#Definindo a função de slide
def draw_slider():
global canvas
 
#Teclas de atalho do teclado
canvas.bind(key_codes.EKeyLeftArrow,lambda: leftkey())
canvas.bind(key_codes.EKeyRightArrow,lambda: rightkey())
appuifw.app.body = canvas
appuifw.app.exit_key_handler = quit
 
#Desenha o retângulo
img.rectangle((SliderX1,SliderY1,SliderX2,SliderY2),fill=SliderColor)
handle_redraw(None)


leftkey()

A função leftkey() é chamada a partir da função draw_slider(). Usando esta função, nós podemos efetuar o movimento da barra deslizante para esquerda pressionando a tecla esquerda (left key). Sendo assim, o código para esta função é apresentado abaixo:

#Definindo a função da tecla da esquerda (leftkey)
def leftkey():
if (SliderX1>0):
#desenha o retângulo
img.rectangle((SliderX1, SliderY1, SliderX2, SliderY2),fill=BLACK)
 
#Define as variáveis globais
global img, canvas,SliderX1, SliderY1, SliderX2, SliderY2
 
#Definindo as coordenadas X1 e X2 do slider
SliderX1=SliderX1-SliderSpeed
SliderX2=SliderX2-SliderSpeed
img.rectangle((SliderX1, SliderY1, SliderX2, SliderY2),fill=SliderColor)
 
#appuifw.note(u"Left arrow was pressed")
handle_redraw(None)

rightkey()

A função rightkey() é chamada a partir da função draw_slider(). Usando esta função, nós podemos efetuar o movimento da barra deslizante para direita pressionando a tecla direita (right key). Sendo assim, o código para esta função é apresentado abaixo:

#definindo a função da tecla da direita
def rightkey():
if (SliderX2<TotalScreenWidth):
#if (SliderX2<sysinfo.display_pixels()[1]):
#desenha o retângulo
img.rectangle((SliderX1, SliderY1, SliderX2, SliderY2),fill=BLACK)
 
#define variáveis globais
global img, canvas,SliderX1, SliderY1, SliderX2, SliderY2
 
#definindo as coordenadas X1 e X2 do slider
SliderX1=SliderX1+SliderSpeed
SliderX2=SliderX2+SliderSpeed
img.rectangle((SliderX1, SliderY1, SliderX2, SliderY2),fill=SliderColor)
 
#appuifw.note(u"Left arrow was pressed")
handle_redraw(None)

That finishes the slider functions (Part 1) for the Brick-Breaker Game.

The next article in the series : Part 2 for brick-Breaker, would cover Brick functions for this game.

Capturas de tela

As figuras abaixo demonstram o objeto criado bem como sua movimentação. Os screenshots são relevantes apenas para a Parte 1.

BrickBreaker slider.jpg BrickBreaker slider left.JPG BrickBreaker slider right.JPG

Links relacionados

This page was last modified on 7 May 2013, at 13:57.
64 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×