Till now, we have written a python program to open a blank black screen and the QUIT event is handled.
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 :
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()
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.
Comments
Post a Comment