Skip to main content

Drawing shapes And Filling colours

Till now, we have written a python program to open a blank black screen and the QUIT event is handled.
In this post, let's see how to add colours to the game surface and draw shapes onto the screen.

Filling colours :

By default, pygame has no predefined colours. We have to define the colours by giving the RGB(red,green,blue) value of the colour. 

 import pygame
pygame.init()
white = (255,255,255)
black = (0,0,0)
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)
display=pygame.display.set_mode((500,500))
game_loop=False
while not game_loop:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            game_loop=True
    display.fill(blue)
    pygame.display.update()
pygame.quit()
quit()

Here i have defined the basic colours by giving the rgb value of those colors. The values are given as a tuple here. Since white is a mixture of all the colours, it's rgb value is 255,255,255 .
Now that we have defined the colours, we can fill the game surface with the colour we want.
To fill the game surface, which is defined in the variable 'display' here, fill command is used.
                                 display.fill(white)
In pygame, we put all the things we want to display in the game surface and then render it because rendering requires more graphics. 
To render objects onto the screen, pygame.display.update() is used. This updates the game window with all the elements.

I have filled the screen with blue colour. So when the program runs, the output will be :




Drawing shapes :

We can draw rectangles onto the screen in pygame using pygame.draw.rect() function.

Now, let me first explain the parameters needed to be entered for the rect() function.

pygame.draw.rect(display,red,[100,100,250,250])

Here, display refers to the game surface where we want to render the rectangle. We want the rectangle to be red. so the second parameter is the colour of the rectangle. The third parameter is a list. 100,100 is the point of the top left pixel of the rectangle. It means the top left point of the rectangle is 100 pixels away from the left and 100 pixels away from the top of the game window.
The next two values 250,250 refers to the width and height of the rectangle respectively.

We can also use fill() to draw rectangles onto the screen. The advantage of using fill over draw.rect()
is that with fill(), the processing is faster compared to draw.rect().
The fill() function will be like :

display.fill(black,rect=[100,100,50,50])

And so, now our code looks like :

import pygame
pygame.init()
white = (255,255,255)
black = (0,0,0)
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)
display=pygame.display.set_mode((500,500))
game_loop=False
while not game_loop:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            game_loop=True
    display.fill(blue)
    pygame.draw.rect(display,red,[100,100,50,100])
    display.fill(black,rect=[100,100,50,50])
    pygame.display.update()
pygame.quit()
quit()

The output of this code would be like :



As you can see, the black rectangle is drawn over the red rectangle. In this way, all the elements are drawn over and over on the window and then display is updated.

That's all for drawing shapes and filling colours in pygame. Thank you.

                                            >> Next : Moving Objects >>

Comments

Popular posts from this blog

Python functions and modules

Functions are a block of code that performs the task specified. They either just perform some computation and display the result or returns the result to the main function. In python, functions are defined with the keyword 'def'. The syntax for defining a function in python is : def function_name :       #Block of statements The keyword def is followed by the name of the function. It is a good practise to name the functions meaningfully representing the task done by it. The function name is followed by a colon (:). In python, Comments are represented by the symbol #. So here #Block of statements is commented and hence it will not be executed by the compiler. # is used to comment one line of code. ''' .......''' is used to comment a block of code. For example, #this is a commented line of code. ''' this is a block of commented code Everything in this code will not be looked into by the compiler This is helpful in comment...

Moving Objects

Hi everyone ! In this post, let us see how to move objects on the game screen. In the previous post, we learnt how to draw objects and fill colors. Now we will see how to move those objects from one place to another. To move objects in a game, we need some event to occur. Let us make the object move on pressing the arrow buttons. import pygame pygame.init() white = (255,255,255) black = (0,0,0) red = (255,0,0) green = (0,255,0) blue = (0,0,255) display=pygame.display.set_mode((500,500)) game_loop=False rect_x = 100 rect_y = 100 while not game_loop:     for event in pygame.event.get():         if event.type == pygame.QUIT:             game_loop = True         if event.type == pygame.KEYDOWN :             if event.key == pygame.K_LEFT :                 rect_x -= 10             if event.key...