【原創】pygame學習筆記(2)----pie遊戲(需優化)
阿新 • • 發佈:2018-11-21
測試程式碼情況
(1)做到了弧形可以按出來
(2)數字的顯示正確
(3)出的一些低階錯誤
temp:\\pygame2.txt 這樣的錯誤, temp\\pygame2.txt 導致 這樣的錯誤,
pygame.display.update 這樣的錯誤, pygame.display.update() 導致黑屏不重新整理
# -*- coding:utf-8 -*- import pygame import sys from pygame.locals import * import math color=0,0,255 width=4 x=300 y=250 radius=200 position=x-radius,y-radius,radius*2,radius*2 piece1=False piece2=False piece3=False piece4=False pygame.init() screen=pygame.display.set_mode((600,500)) caption=pygame.display.set_caption("draw with 1,2,3,4") myfont=pygame.font.Font(None,60) while True: for event in pygame.event.get(): if event.type == QUIT: sys.exit() elif event.type == KEYDOWN: if event.key==pygame.K_ESCAPE: sys.exit() elif event.key==pygame.K_1: piece1=True elif event.key==pygame.K_2: piece2=True elif event.key==pygame.K_3: piece3=True elif event.key==pygame.K_4: piece4=True #clear the screen screen.fill((0,255,0)) #draw the four numbers #有修改,pygame的角度是正上方0度,順時針轉的 textImg3=myfont.render("3",True,color) screen.blit(textImg3,(x+radius/2-200,y+radius/2)) textImg4=myfont.render("4",True,color) screen.blit(textImg4,(x+radius/2,y+radius/2)) textImg1=myfont.render("1",True,color) screen.blit(textImg1,(x+radius/2,y+radius/2-200)) textImg2=myfont.render("2",True,color) screen.blit(textImg2,(x+radius/2-200,y+radius/2-200)) #should the pieces be drawn? if piece1: start_angle=math.radians(0) end_angle=math.radians(90) pygame.draw.arc(screen,color,position,start_angle,end_angle,width) pygame.draw.line(screen,color,(x,y),(x,y-radius),width) pygame.draw.line(screen,color,(x,y),(x+radius,y),width) if piece2: start_angle=math.radians(90) end_angle=math.radians(180) pygame.draw.arc(screen,color,position,start_angle,end_angle,width) pygame.draw.line(screen,color,(x,y),(x,y-radius),width) pygame.draw.line(screen,color,(x,y),(x-radius,y),width) if piece3: start_angle=math.radians(180) end_angle=math.radians(270) pygame.draw.arc(screen,color,position,start_angle,end_angle,width) pygame.draw.line(screen,color,(x,y),(x-radius,y),width) pygame.draw.line(screen,color,(x,y),(x,y+radius),width) if piece4: start_angle=math.radians(270) end_angle=math.radians(360) pygame.draw.arc(screen,color,position,start_angle,end_angle,width) pygame.draw.line(screen,color,(x,y),(x,y+radius),width) pygame.draw.line(screen,color,(x,y),(x+radius,y),width) #is the pie finished? if piece1 and piece2 and piece3 and piece4: color=0,128,0 pygame.display.update()
優化程式碼
#is the pie finished?
if piece1 and piece2 and piece3 and piece4:
color=255,0,0
textImg_good=myfont.render("farewell,good!",True,color)
screen.blit(textImg_good,(x-150,y))
pygame.display.update()