Hello Michael and welcome to the community :)
I tried your code on my Linux setup: Python 3.8.5, Pygame 2.0.0, SDL 2.0.12,
KDE neon 5.20.04, Mesa DRI Intel HD Graphics 3000...
After adding the missing
WHITE = (255, 255, 255)
and running your code, I didn't notice tearing as I moved the circle around.
But for me, KDE uses KWin, which is a composited window manager. Is Xubuntu
using XFWM? I'm going out on a limb, but I think that is not a composited WM,
and might have a different interaction with X11 and appear differently. Have
you experimented with installing a different distro, like Kubuntu, then login
and run your test and see if it behaves differently?
~ Michael
On Monday, December 14, 2020 7:00:22 PM PST you wrote:
> Python 3.8.6
> Pygame 2.0.0
> Xubuntu 20.10
> Nvidia 1060 6GB
>
> The following code, when run, causes an issue where the circle starts to
> tear as it moves across the screen if I click on the active window. Where I
> click seems to matter also, as the tearing can be adjusted by clicking at
> various points from top to bottom. I'm not checking for mouse events in the
> code, but I would imagine their still being tracked.
>
> The tearing continues to happen after I've stopped and ran it again as
> well. It does go back to normal after a few tries. But the effects seem to
> stay in memory.
>
> I wasn't sure where to send bugs, the website led me here. I hope this is
> the right place.
>
> #
> import pygame as pg
>
> # init game space
> pg.init()
>
> screen = pg.display.set_mode((600, 400))
> pg.display.set_caption("Ball Moving")
>
> playerX = 50
> playerY = 50
> player_Width = 30
> player_Height = 30
> playerVelocity = 0.5
>
> # Color Constants
> BLUE = (0, 0, 255)
>
> # loop
> running = True
> while running:
> for event in pg.event.get():
> if event.type == pg.QUIT:
> running = False
>
> # update screen
> keys = pg.key.get_pressed()
> if keys[pg.K_LEFT]:
> playerX -= playerVelocity
> if keys[pg.K_RIGHT]:
> playerX += playerVelocity
> if keys[pg.K_UP]:
> playerY -= playerVelocity
> if keys[pg.K_DOWN]:
> playerY += playerVelocity
>
> screen.fill(WHITE)
> pg.draw.circle(screen, (BLUE), (playerX, playerY), player_Width, 0)
> pg.display.flip()
>
> pg.display.quit()
> pg.quit()
>