day17-homework

用pygame设计画图

import pygame
import function

pygame.init()
screen = pygame.display.set_mode((800,800))
screen.fill((255,255,255))

state =  function.drawLine(screen)
pygame.display.flip()
while True:
    #只要有事件产生就会进入for循环
    for event in pygame.event.get():
        #根据判断type的值来判断是什么事件产生了
        if event.type == pygame.QUIT:
            exit()
        elif event.type == pygame.KEYDOWN:
            state = function.selectState(event,screen)
        if state == '画直线':
            function.line(event,screen)
        elif state == '画矩形':
            function.rect(event,screen)
        elif state == '画圆':
            function.circle(event,screen)
import pygame
def drawLine(screen):
    pygame.draw.rect(screen,(255,255,255),(0,0,150,60))
    font = pygame.font.Font('./aa.ttf', 50)
    text = font.render('画直线', False, (0, 255, 0))
    screen.blit(text, (0, 0))
    pygame.display.flip()
    return '画直线'
def drawRect(screen):
    pygame.draw.rect(screen, (255, 255, 255), (0, 0, 150, 60))
    font = pygame.font.Font('./aa.ttf', 50)
    text = font.render('画矩形', False, (0, 255, 0))
    screen.blit(text, (0, 0))
    pygame.display.flip()
    return '画矩形'
def drawCircle(screen):
    pygame.draw.rect(screen, (255, 255, 255), (0, 0, 150, 60))
    font = pygame.font.Font('./aa.ttf', 50)
    text = font.render('画圆', False, (0, 255, 0))
    screen.blit(text, (0, 0))
    pygame.display.flip()
    return '画圆'
def line(event,screen):
    if event.type == pygame.MOUSEBUTTONDOWN:
        first_pos = event.pos
        nowlast_pos = first_pos
        while True:
            for event in pygame.event.get():
                if event.type == pygame.MOUSEMOTION:
                    now_pos = event.pos
                    pygame.draw.line(screen, (255, 255, 255), first_pos, nowlast_pos, 5)
                    pygame.display.flip()
                    pygame.draw.line(screen, (0, 0, 0), first_pos, now_pos, 5)
                    nowlast_pos = now_pos
                    pygame.display.flip()
                elif event.type == pygame.MOUSEBUTTONUP:
                    last_pos = event.pos
                    pygame.draw.line(screen, (0, 0, 0), first_pos, last_pos, 5)
                    pygame.display.flip()
                    break
            if event.type == pygame.MOUSEBUTTONUP:
                break
def rect(event,screen):
    if event.type == pygame.MOUSEBUTTONDOWN:
        first_pos = event.pos
        nowlast_pos = first_pos
        while True:
            for event in pygame.event.get():
                if event.type == pygame.MOUSEMOTION:
                    now_pos = event.pos
                    pygame.draw.rect(screen, (255, 255, 255),
                                     (*first_pos, nowlast_pos[0] - first_pos[0], nowlast_pos[1] - first_pos[1]))
                    pygame.display.flip()
                    pygame.draw.rect(screen, (0, 0, 0),
                                     (*first_pos, now_pos[0] - first_pos[0], now_pos[1] - first_pos[1]))
                    nowlast_pos = now_pos
                    pygame.display.flip()
                elif event.type == pygame.MOUSEBUTTONUP:
                    last_pos = event.pos
                    pygame.draw.rect(screen, (0, 0, 0),
                                     (*first_pos, last_pos[0] - first_pos[0], last_pos[1] - first_pos[1]))
                    pygame.display.flip()
                    break
            if event.type == pygame.MOUSEBUTTONUP:
                break
def circle(event,screen):
    if event.type == pygame.MOUSEBUTTONDOWN:
        first_pos = event.pos
        nowlast_pos = first_pos
        while True:
            for event in pygame.event.get():
                if event.type == pygame.MOUSEMOTION:
                    now_pos = event.pos
                    pygame.draw.circle(screen, (255, 255, 255), first_pos, int(
                        ((nowlast_pos[0] - first_pos[0]) ** 2 + (nowlast_pos[1] - first_pos[1]) ** 2) ** 0.5))
                    pygame.display.flip()
                    pygame.draw.circle(screen, (0, 0, 0), first_pos, int(
                        ((now_pos[0] - first_pos[0]) ** 2 + (now_pos[1] - first_pos[1]) ** 2) ** 0.5))
                    nowlast_pos = now_pos
                    pygame.display.flip()
                elif event.type == pygame.MOUSEBUTTONUP:
                    last_pos = event.pos
                    pygame.draw.circle(screen, (0, 0, 0), first_pos, int(
                        ((last_pos[0] - first_pos[0]) ** 2 + (last_pos[1] - first_pos[1]) ** 2) ** 0.5))
                    pygame.display.flip()
                    break
            if event.type == pygame.MOUSEBUTTONUP:
                break

def selectState(event,screen):
    if event.key == 114:
        # 画矩形
        state = drawRect(screen)
        print(event.key)
    elif event.key == 99:
        # 画圆
        state = drawCircle(screen)
        print(event.key)
    elif event.key == 108:
        # h画直线
        state = drawLine(screen)
        print(event.key)
    return state
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 写一个正则表达式判断一个字符串是否是ip地址规则:一个ip地址由4个数字组成,每个数字之间用.连接。每个数字的大小...
    葡萄柚子茶阅读 4,202评论 0 1
  • 1.写一个正则表达式判断一个字符串是否是ip地址规则:一个ip地址由4个数字组成,每个数字之间用.连接。每个数字的...
    rzlong阅读 1,810评论 0 0
  • pygame图形接口 使用pygame.image模块,可以对图像进行读取和保存。 使用pygame.image....
    sssally92阅读 17,803评论 1 25
  • 《原来》 原来,一个人可以这样的。 对一个人,连简单的对话都不敢,一些可以在别人面前说的话,对他,说不出来。就连玩...
    宋思格阅读 1,616评论 0 0
  • 世间最美的情话,我养你,我来照顾你! 不让你经历风吹雨打,我用坚实臂膀保护你! 此时此刻,你是世间最幸福的女孩! ...
    一简云兮阅读 2,615评论 0 0

友情链接更多精彩内容