Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

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

From 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 10:57.
315 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.

×