Pygame Creating Surfaces
Solution 1:
Pygame uses surfaces to represent any form of image. This could be either
your main screen Surface, which is returned by the
pygame.display.set_mode()
functionmyDisplay = pygame.display.set_mode((500, 300))
or created object of the
pygame.Surface
class:#create a new Surface myNewSurface = Surface((500, 300)) #change its background color myNewSurface.fill((55,155,255)) #blit myNewSurface onto the main screen at the position (0, 0) myDisplay.blit(myNewSurface, (0, 0)) #update the screen to display the changes display.update() #or display.flip()
Pygame's display.update()
has a method that allows one to update only some portions of the screen by passing one object or a list of pygame.Rect
objects to it. Therefore, we could also call:
myUpdateRect= pygame.Rect((500, 300), (0, 0))
display.update(myUpdateRect)
Anyway, I recommend to using the pygame.draw
module to draw simple shapes like rectangles, circles and polygons onto a surface, because all of these functions return a rectangle representing the bounding area of changed pixels.
This enables you to pass this information to the update()
function, so Pygame only updates the pixels of the just drawn shapes:
myDisplay = pygame.display.set_mode((500, 300))
myRect= pygame.Rect((100, 200), (50, 100))
pygame.display.update(pygame.draw.rect(myDisplay, (55, 155, 255), myRect))
Update:
def taskbar():
basicfont = pygame.font.SysFont(None, 24)
text = basicfont.render(strftime("%Y-%m-%d", gmtime()), True, (0, 0, 0))
text2 = basicfont.render(strftime("%H:%M:%S", gmtime()), True, (0, 0, 0))
screen.fill((55, 155, 255))
screen.blit(text, (w - 100, h - 37))
screen.blit(text2, (w - 100, h - 17))
pygame.display.update()
Hope this helps :)
Post a Comment for "Pygame Creating Surfaces"