×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:How to develop brick-breaker game in PySymbian - Part 1

From Nokia Developer Wiki
Jump to: navigation, search
hamishwillee (Talk | contribs)
m (Hamishwillee - Bot update - Fix ReviewerApproval and ArticleMetaData etc)
hamishwillee (Talk | contribs)
m (Hamishwillee - Tidy wiki text)
Line 1: Line 1:
 +
[[Category:PySymbian]][[Category:How To]][[Category:Code Snippet]][[Category:Games]]
 +
{{Abstract|Brick-Breaker is a simple arcade game where the player moves a paddle on the screen and bounces a ball towards bricks at the top of the screen. When the ball hits a brick it breaks and the ball bounces back - the objective of the game is to destroy all the bricks. This is the first article explaining the PySymbian implementation of Brick-Breaker - it covers the different slider functions in detail.}}
 +
 
{{ArticleMetaData <!-- v1.1 -->
 
{{ArticleMetaData <!-- v1.1 -->
 
|sourcecode= <!-- Link to example source code e.g. [[Media:The Code Example ZIP.zip]] -->
 
|sourcecode= <!-- Link to example source code e.g. [[Media:The Code Example ZIP.zip]] -->
Line 23: Line 26:
 
}}
 
}}
 
{{FeaturedArticle|timestamp=20090802}}
 
{{FeaturedArticle|timestamp=20090802}}
 
 
==Introduction==
 
 
In this article, I would be explaining how to create a Brick-Breaker game in PySymbian. The Brick-Breaker game is an arcade game. In this game, the player moves a paddle on the screen and bounces a ball. The objective of the game is to destroy bricks which are at the top.
 
  
 
==Development tools==
 
==Development tools==
  
1. Text editor - notepad is sufficient.
+
# Text editor - notepad is sufficient.
 
+
# PySymbian - preferred version: PySymbian 1.4.5 stable release
2. PySymbian - preferred version: PySymbian 1.4.5 stable release
+
# PySymbian script shell - preferred version: PySymbian 1.4.5 stable release
 
+
3. PySymbian script shell - preferred version: PySymbian 1.4.5 stable release
+
  
 
The PySymbian tools can be downloaded from [http://sourceforge.net/projects/pys60/files/pys60/1.4.5/ Sourceforge resources].  
 
The PySymbian tools can be downloaded from [http://sourceforge.net/projects/pys60/files/pys60/1.4.5/ Sourceforge resources].  
Line 49: Line 45:
 
* time module
 
* time module
  
 
 
==Functions==
 
==Functions==
  
 
The following  functions are used in Brick Breaker game.
 
The following  functions are used in Brick Breaker game.
 
+
# <tt>'''draw_screen'''</tt>: draw black screen in canvas.
1. <tt>'''draw_screen'''</tt>: draw black screen in canvas.<br>
+
# <tt>'''draw_slider'''</tt>: draw slider.
2. <tt>'''draw_slider'''</tt>: draw slider.<br>
+
# <tt>'''leftkey'''</tt>: control the slider by left key.
3. <tt>'''leftkey'''</tt>: control the slider by left key.<br>
+
# <tt>'''rightkey'''</tt>: control the slider by right key.
4. <tt>'''rightkey'''</tt>: control the slider by right key.<br>
+
# <tt>'''draw_bricks'''</tt>: draw number of bricks.
5. <tt>'''draw_bricks'''</tt>: draw number of bricks.<br>
+
# <tt>'''erase_bricks'''</tt>: erase bricks.
6. <tt>'''erase_bricks'''</tt>: erase bricks.<br>
+
 
+
=Part 1=
+
 
+
In this article (Part-1) we would discuss the different slider functions in detail.
+
  
 
==Initializing slider parameter==
 
==Initializing slider parameter==
Line 189: Line 179:
 
* [[How to develop brick-breaker game in PySymbian - Part 2]]
 
* [[How to develop brick-breaker game in PySymbian - Part 2]]
 
* [[How to develop brick-breaker game in PySymbian - Part 3]]
 
* [[How to develop brick-breaker game in PySymbian - Part 3]]
* [[Introduction to PySymbian]][[Category:PySymbian]][[Category:Entertainment]][[Category:How To]][[Category:Code Snippet]]
+
* [[Introduction to PySymbian]]

Revision as of 09:01, 13 February 2012

Brick-Breaker is a simple arcade game where the player moves a paddle on the screen and bounces a ball towards bricks at the top of the screen. When the ball hits a brick it breaks and the ball bounces back - the objective of the game is to destroy all the bricks. This is the first article explaining the PySymbian implementation of Brick-Breaker - it covers the different slider functions in detail.

Article Metadata
Article
Created: nirpsis (06 Jul 2009)
Last edited: hamishwillee (13 Feb 2012)
Featured Article
02 Aug
2009

Contents

Development tools

  1. Text editor - notepad is sufficient.
  2. PySymbian - preferred version: PySymbian 1.4.5 stable release
  3. PySymbian script shell - preferred version: PySymbian 1.4.5 stable release

The PySymbian tools can be downloaded from Sourceforge resources.

The following modules are used when developing this application:

  • appuifw module
  • sysinfo module
  • graphics module
  • e32 module
  • key_codes module
  • random module
  • math module
  • time module

Functions

The following functions are used in Brick Breaker game.

  1. draw_screen: draw black screen in canvas.
  2. draw_slider: draw slider.
  3. leftkey: control the slider by left key.
  4. rightkey: control the slider by right key.
  5. draw_bricks: draw number of bricks.
  6. erase_bricks: erase bricks.

Initializing slider parameter

Before discussing, any functions in detail - let us define some of the slider parameters.

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

draw_screen()

By using this function, We create a black screen in canvas. The definition of the draw_screen() is as follows:

#defining draw function
def draw_screen():
#Set the screen to full
appuifw.app.screen = 'full'
 
#Global variable for application UI
global canvas
canvas = appuifw.Canvas(redraw_callback=handle_redraw)
appuifw.app.body = canvas
appuifw.app.exit_key_handler = quit
 
#Global variable for application UI
global img
img = graphics.Image.new(canvas.size)
 
#Clear the image
img.clear(BLACK)
handle_redraw(None)

draw_slider()

By using this function, we create a slider in canvas using keyboard shortcuts. The definition of the draw_screen() is as follows:

#defining slider function
def draw_slider():
global canvas
 
#Keyboard shortcuts
canvas.bind(key_codes.EKeyLeftArrow,lambda: leftkey())
canvas.bind(key_codes.EKeyRightArrow,lambda: rightkey())
appuifw.app.body = canvas
appuifw.app.exit_key_handler = quit
 
#draw the rectangle
img.rectangle((SliderX1,SliderY1,SliderX2,SliderY2),fill=SliderColor)
handle_redraw(None)

leftkey()

The leftkey() is called from the draw_slider() function. By using this function, we can move the slider to left side by pressing left key. Thus, the code of leftkey() function is as follows:

#defining leftkey function
def leftkey():
if (SliderX1>0):
#draw the rectangle
img.rectangle((SliderX1, SliderY1, SliderX2, SliderY2),fill=BLACK)
 
#globally define variables
global img, canvas,SliderX1, SliderY1, SliderX2, SliderY2
 
#defining the slider coordinate X1 and X2
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()

The rightkey() is called from the draw_slider() function. By using this function, we can move the slider to right side by pressing right key. Thus the code of rightkey() function is as follows:

#defining right key function
def rightkey():
if (SliderX2<TotalScreenWidth):
#if (SliderX2<sysinfo.display_pixels()[1]):
#draw rectangle
img.rectangle((SliderX1, SliderY1, SliderX2, SliderY2),fill=BLACK)
 
#globally define variables
global img, canvas,SliderX1, SliderY1, SliderX2, SliderY2
 
#defining the slider coordinate X1 and X2
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.

Screenshots

These screenshots demonstrate the Slider and its movable position on canvas. The screenshots are relevant only to Part 1.

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

Related Links

129 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.

×