任務一:實現簡單的屏幕的顏色之間的切換
importpygamefrom pygame.locals import *pygame.init()
win= pygame.display.set_mode((800,600),DOUBLEBUF|HWSURFACE)for i in range(10):
win.fill((0,255,0))if i%2==0:
win.fill((255,0,0))
pygame.time.wait(500)
pygame.display.flip()
注意的點:
需要先導入Pygame.locals才能用后來的doublebuf 以及hwsurface
但是怎么樣定義屏幕的顏色即 depth 的設置還不是很懂。
任務二:捕捉鼠標移動的事件,并在鼠標的位置畫一個圓
importpygamefrom pygame.locals import *
importsys
pygame.init()
win= pygame.display.set_mode((800,600),DOUBLEBUF|HWSURFACE)whileTrue:
ev=pygame.event.get()for i inev:if not i ==None:print(i)if i.type==QUIT:
pygame.quit()elif i.type==MOUSEMOTION:
pygame.draw.circle(win,(255,0,0),i.pos,3, 3)
pygame.display.flip()
疑問:在pygame.draw.circle函數中不能加關鍵字如radius=, 或者width =,只能直接寫值,不知道為什么。
還有在捕捉事件的過程中一定要加入死循環,不然事件會瞬間打印出來,再后來的事件發生之前,捕捉已經結束。
任務三:simon 效應的雛形,隨機呈現小圓點
#random circle dot in the window
importpygame,sys,randomfrom pygame.locals import *pygame.init()
win= pygame.display.set_mode((800,600),DOUBLEBUF|HWSURFACE)
cor=()
position=()for i in range(30):
num= random.choice([0,1])if num ==0:
cor= (255,0,0)
position= (200,300)else:
cor=(0,255,0)
position=(600,300)
pygame.time.wait(500)
pygame.draw.circle(win,cor,position,10)## win.fill((0,0,0)) the display covers?when the code is here,the reason is that the background dont cansal the circle
pygame.display.flip()
pygame.time.delay(1000)
win.fill((0,0,0))
pygame.display.flip()#no no no ,because i dont have the flip(), not the background cannt cover the circle
pygame.time.delay(800)
pygame.quit()
sys.exit()
注意的點:
呈現圓點后的黑屏,要用filp()函數,而并不是背景色不能夠覆蓋圓點
原文:https://www.cnblogs.com/zijidefengge/p/11570129.html