版权声明:一起学习,一起成长,欢迎关注犀牛先生的博客 https://blog.csdn.net/xuemanqianshan/article/details/83267912
测试代码情况
(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()