2014-09-22 37 views
0

當我運行這個代碼時,它只是製作一圈圓圈而不是一圈移動。代碼如下:爲什麼圈子在畫完後不會消失?

import pygame, sys, random 
from pygame.locals import * 
pygame.init() 
windowSurface = pygame.display.set_mode((500, 400), 0, 32) 
WHITE = (255, 255, 255) 

circX = 250 
circY= 250 
diffX= 0 
diffY=0 

while True: 
for event in pygame.event.get(): 
    if event.type == QUIT: 
    pygame.quit() 
    sys.exit() 
diffX += random.randint(-1,1) 
diffY += random.randint(-1,1) 
circX += diffX 
circY += diffY 
circLocate = (circX,circY) 
pygame.draw.circle(windowSurface, WHITE, circLocate, 10, 0) 
pygame.display.flip() 
+1

Pygame就像一個畫布,每次都是不一樣的對象。每次畫畫時都會創建一個新的圈子。您需要刪除您之前繪製的圓圈,以使圓圈「移動」 – Michael 2014-09-22 17:38:56

+0

@ microsby0其他方式圓形...您每次都得到同樣的畫布,因此需要清除之前的圖形。 – Basic 2014-09-23 01:46:16

+0

這是糟糕的措辭,我的意思是「Pygame就像一個畫布,圓圈不是每次都是同一個對象」。感謝您爲我抓到。 – Michael 2014-09-23 13:28:33

回答

0

這除了你應該想的圓周運動

while True: 
for event in pygame.event.get(): 
    if event.type == QUIT: 
    pygame.quit() 
    sys.exit() 
windowSurface.fill(WHITE) //add this line to clear the screen 
diffX += random.randint(-1,1) 
diffY += random.randint(-1,1) 
circX += diffX 
circY += diffY 
circLocate = (circX,circY) 
pygame.draw.circle(windowSurface, WHITE, circLocate, 10, 0) 
pygame.display.flip() 
0

你要清楚的屏幕,看起來就像物體移動每次清除屏幕。

windowSurface.fill(WHITE) 

這樣:

import pygame, sys, random 
from pygame.locals import * 
pygame.init() 
windowSurface = pygame.display.set_mode((500, 400), 0, 32) 
WHITE = (255, 255, 255) 

circX = 250 
circY= 250 
diffX= 0 
diffY=0 

while True: 
for event in pygame.event.get(): 
    if event.type == QUIT: 
    pygame.quit() 
    sys.exit() 
diffX += random.randint(-1,1) 
diffY += random.randint(-1,1) 
circX += diffX 
circY += diffY 
circLocate = (circX,circY) 
windowSurface.fill(WHITE) 
pygame.draw.circle(windowSurface, WHITE, circLocate, 10, 0) 
pygame.display.flip() 

但是,請確保windowSurface.fill()以前pygame.draw.circle(),否則,它只會顯示一個白色的屏幕。