python小欢喜(六)动画 (3) 画笔程序

在前面的文章《python小欢喜(六)动画 (1) pygame的安装与初步使用》中介绍了如何安装pygame。接下来用pygame实现一个简单的画笔程序。

与前面的简单动画相比,最大的不同之处在于,画笔程序需要处理用户的输入,用户可以用鼠标在屏幕上画出自己想画的任务图形。

实现效果

在这里插入图片描述
在pygame的窗口中,点击鼠标左键不放,通过拖动就可以绘制任意图形。

python代码如下:

# -*- coding:utf-8 -*- 
# 简单画笔程序
import pygame                           # 导入pygame模块
pygame.init()							# pygame的初始化操作
screen = pygame.display.set_mode([800,600]) # 设置窗口大小为800*600
pygame.display.set_caption("简单画笔") #设置窗口标题
keep_going = True  # 控制事件循环是否结束的变量
YELLOW = (255,255,0)                    # 通过RGB值设置画笔颜色,目前设置为黄色
radius = 15 #设置画笔的粗细,画笔线条中的每一个点都是一个小圆形,设置这个圆形的半径
mousedown = False #记录鼠标的按键是否被按下(左键或右键都可以)
while keep_going:                       # 事件循环
    for event in pygame.event.get():    # 取出当前的事件
        if event.type == pygame.QUIT:   # 如果当前事件是pygame的退出事件
            keep_going = False			# 将 keep_going 置为False ,导致退出事件循环
        if event.type == pygame.MOUSEBUTTONDOWN: # 如果是鼠标按键被按下的事件
            mousedown = True					 # mousedown 被置为True
        if event.type == pygame.MOUSEBUTTONUP:   # 如果是鼠标按键被松开的事件
            mousedown = False 					 # mousedown 被置为False
    if mousedown:                       # 如果处于鼠标按键被按下状态
        spot = pygame.mouse.get_pos() 	# 取得鼠标当前的位置,存放于spot变量中
        pygame.draw.circle(screen, YELLOW, spot, radius) # 在鼠标当前位置处画一个圆,该圆的颜色,半径在前面已经设置过了
    pygame.display.update()             # 更新pygame的显示区域
        
pygame.quit()                           # 从事件循环中退出后,执行pygame.quit()导致整个程序退出

对源码中的每一行都加上了中文注释,阅读起来问题应该不大吧。

如果要换个画笔颜色,比如红色,并将线条变得更细一些,只需要改动第8行与第9行

YELLOW = (255,0,0)                    # 通过RGB值设置画笔颜色,目前设置为红色
radius = 5 #设置画笔的粗细,画笔线条中的每一个点都是一个小圆形,设置这个圆形的半径

效果如下:
在这里插入图片描述
更多的效果,读者朋友可以自己尝试修改源码来实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值