In this article, I will create a small python program using the pygame framework to scale up and rotate an image on the display screen. The image will keep on rotating counterclockwise at 0.1 degrees on each update!
The method which I used in this program to scale and rotate the image is:
rotate_image = pygame.transform.rotozoom(pawn0, original_rotation, 2)
The first parameter of the method is the surface of the normal image. The second parameter is the degree of rotation in the counterclockwise motion which is in float value. The third parameter is the scale of the resized image which is also in the float value! This method will return the rotating surface which will be used in the screen.blit method below.
Below is the whole program…
# Import and initialize the pygame library import pygame import pygame.gfxdraw pygame.display.init() # set the caption on the panel pygame.display.set_caption("Draw Some Drawing") # windows height and width windowwidth = 600 windowheight = 600 # hat image load pawn0 = pygame.image.load("pawn.png") width, height = pawn0.get_size() # return width and height of the hat # the initial position of the hat image original_image_x = 260 original_image_y = 260 increment_rotation = 0.1 original_rotation = 0 # Print this line on output panel if the initialize process is successful if(pygame.display.get_init() == True): print("Success initialize the game!") # Initialize a window or screen for display screen = pygame.display.set_mode([windowwidth, windowheight]) # the triangle color tricolor = pygame.Color(0,0,0) # Print the size of the game display window print("The windows size is " + str(pygame.display.get_window_size())) # Run the game until the user asks to quit running = True while running: # If the user clicks on the 'x' button on pygame display window then set running to false for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Fill the screen with white color screen.fill((255,255,255)) original_rotation += increment_rotation # increase the angle at 0.1 degree rotate_image = pygame.transform.rotozoom(pawn0, original_rotation, 2) # rotates the image and makes it bigger screen.blit(rotate_image, (original_image_x, original_image_y)) # drawing the rotated image within screen surface pygame.display.flip() # refresh the screen # Quit the game pygame.display.quit()
And here is the outcome…
Now here is an exercise for you all, make the image larger and then smaller again during each update!