I tried to use .blit but an issue occurs, here is a screenshot to explain my problem furthermore:
The image appears to be smudged across the screen following my mouse
code:
import pygame
import keyboard
black = (0,0,0)
white = (255, 255, 255)
pygame.init()
screen = pygame.display.set_mode((600, 400))
screen.fill(black)
screen.convert()
icon = pygame.image.load('cross.png')
pygame.display.set_icon(icon)
pygame.display.set_caption('MouseLoc')
cross = pygame.image.load('cross.png')
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT or keyboard.is_pressed(' '):
running = False
mx, my = pygame.mouse.get_pos()
screen.blit(cross, (mx-48, my-48))
print(my, mx)
pygame.display.update()
Advertisement
Answer
Fix the indentation in your given code, it puts all the important stuff outside the while loop. You can also add a function that redraws the window each time the sprite is moved:
def redraw_game_window():
screen.fill(black)
screen.blit(•••)
pygame.display.update()
And put this at the end of your program, after putting all fill and blit statements inside the function:
redraw_game_window()
This function will make it easier for you to blit more items on the screen, and this will prevent the object from drawing on the screen, because the screen is updated every time the object is moved.
