I'm not sure why you are creating a new surface everytime. Or why you create one at all?
Is this similar to what you are looking for? http://programarcadegames.com/python_examples/f.php?file=radar_sweep.py Paul Vincent Craven On Tue, Aug 25, 2015 at 3:57 PM, tom arnall <kloro2...@gmail.com> wrote: > I want to rotate a line around a point. The code that follows does > this, BUT when it draws a line, it leaves next to the line its ghost. > Is this a problem with pygame, or is there a change I can make in the > code which will make the problem go away? > > > import pygame, sys > from pygame.locals import * > import time > > pygame.init() > > #create a surface that will be seen by the user > screen = pygame.display.set_mode((400, 400)) > > #create a varible for degrees pf rotation > degree = 0 > while True: > > for event in pygame.event.get(): > # quit the game if escape is pressed > if event.type == QUIT: > sys.exit() > elif event.type == KEYDOWN and\ > event.key == K_ESCAPE: > sys.exit() > > #clear screen at the start of every frame > screen.fill((40, 40, 40)) > > #create new surface with white BG > surf = pygame.Surface((1000, 5)) > surf.fill((255, 255, 255)) > #set a color key for blitting > surf.set_colorkey((255, 0, 0)) > > > ##ORIGINAL UNCHANGED > #where will the static image be placed: > where = (0,200) > > #draw surf to screen and catch the rect that blit returns > blittedRect = screen.blit(surf, where) > > ##ROTATED > #get center of surf for later > oldCenter = blittedRect.center > > #rotate surf by DEGREE amount degrees > rotatedSurf = pygame.transform.rotate(surf, degree) > > #get the rect of the rotated surf and set it's center to the oldCenter > rotRect = rotatedSurf.get_rect() > rotRect.center = oldCenter > > #draw rotatedSurf with the corrected rect so it gets put in the proper > spot > screen.blit(rotatedSurf, rotRect) > > #change the degree of rotation > degree += 5 > if degree > 360: > degree = 0 > > #show the screen surface > pygame.display.flip() > > #wait 60 ms until loop restart > pygame.time.wait(60) >