Archived:Como desenvolver o jogo brick-breaker em PySymbian - Parte 2
Acredita-se que este artigo ainda seja válido no contexto original (quando ele foi escrito)
Dados do artigo
Contents |
Introdução
Na parte 1 desta série de artigos as funções para implementação da barra horizontal deslizante do nosso jogo Brick-breaker foram discutidas. Neste artigo - Parte 2, nós iremos aprender sobre as diferentes funções para manipulação dos tijolos.
As funções para manipulação dos tijolos incluem funções para desenho do númeo de tijolos necessários e a deleção dos tijolos existentes. As seguintes funções serão discutidas neste artigo:
1.draw_bricks: desenha os tijolos
2.erase_bricks: apaga tijolos
Parte 2
Neste jogo, nós inicializamos alguns parametros para os objetos que representam os tijolos. É possível alterar o valor dos parâmetros para obter uma personalização do jogo. Os tijolos podem ser substituídos por outras formas como apresentado na figura a seguir. Os parametros para tijolos simples que são usados neste jogo são inicializados da maneira a seguir:
# Initializing bricks parameter######
brick_x=10
brick_y=40
brick_width=32
brick_height=20
number_of_bricks=7
number_of_lines=3
Horizontal_Separator=2
Vertical_Separator=3
BrickColour=BLUE
BrickBorder=GREEN
draw_bricks()
Usando esta função, nós podemos desenha os tijolos tanto na horizontal quanto na vertical. No trecho de código abaixo serão criados 30 tijolos.
A definição da função draw_screen() é apresentada a seguir:
#definindo a função brick
def draw_bricks():
#definindo variáveis globais
global x1,y1,x2,y2, brick_x, brick_y, brick_width, brick_height,number_of_bricks, Horizontal_Separator,Vertical_Separator,number_of_lines
j=0
while j<number_of_lines:
i=0
#define as coordenadas do retângulo
x1=brick_x
y1=brick_y+(j*(brick_height+Vertical_Separator))
x2=x1+brick_width
y2=y1+brick_height
while (i<number_of_bricks):
drawing rectangle
img.rectangle((x1+ (i*brick_width),y1,x2+ (i*brick_width)-Horizontal_Separator,y2), width=1, outline=BrickBorder,fill= BrickColour)
i=i+1
handle_redraw(None)
j=j+1
erase_bricks()
Usando esta função nós podemos apagar os tijolos passando o número do tijolo que se quer apagar. A definição da função é apresentada abaixo:
#define a função para apagar os tijolos
def erase_bricks(number):
#define variáveis globais
global x1,y1,x2,y2, brick_x, brick_y, brick_width, brick_height,number_of_bricks, Horizontal_Separator,Vertical_Separator,number_of_lines
i=0
if (number < number_of_bricks):
i=number
x1=brick_x
y1=brick_y
x2=x1+brick_width
y2=y1+brick_height
#define variável global
img.rectangle((x1+ (i*brick_width),y1,x2+ (i*brick_width)-Horizontal_Separator,y2),fill= BLACK)
handle_redraw(None)
if (number < (2*number_of_bricks)) and (number > (number_of_bricks-1)):
i=number-number_of_bricks
x1=brick_x
y1=brick_y+(1*(brick_height+Vertical_Separator))
x2=x1+brick_width
y2=y1+brick_height
#desenhando o retângulo
img.rectangle((x1+ (i*brick_width),y1,x2+ (i*brick_width)-Horizontal_Separator,y2),fill= BLACK)
handle_redraw(None)
if (number < (3*number_of_bricks)) and (number > (2*number_of_bricks-1)):
i=number-(2*number_of_bricks)
x1=brick_x
y1=brick_y+(2*(brick_height+Vertical_Separator))
x2=x1+brick_width
y2=y1+brick_height
#desenhando o retângulo
img.rectangle((x1+ (i*brick_width),y1,x2+ (i*brick_width)-Horizontal_Separator,y2),fill= BLACK)
handle_redraw(None)
Com isso, finalizamos as funções dos tijolos (Parte 2) para o jogo Brick-Breaker.
No próximo artigo da série - Parte 3 - será abordado como rebater a bola em canvas, operações do jogo e, finalmente, as conclusões do jogo.
Capturas de tela
Os screenchots abaixo demonstram o funcionamento da função que cria os tijolos. Estas figuras são relevantes apenas para a Parte 2.


(no comments yet)