Python趣味挑战之教你用pygame画进度条

作者:dhjabc_1 时间:2022-08-13 15:02:49 

一、初始化主界面


import pygame

pygame.init()
screen = pygame.display.set_mode((500,300))
pygame.display.set_caption("好看的进度条显示V1.0")
clock = pygame.time.Clock()

while True:
   for event in pygame.event.get():
       if event.type == pygame.QUIT or event.type == pygame.K_F1:
           pygame.quit()
           sys.exit()
   screen.fill((255,255,255))
   clock.tick(30)
   pygame.display.flip()

Python趣味挑战之教你用pygame画进度条

二、第一种进度条

(一)核心代码


pygame.draw.rect(screen,(192,192,192),(5,100,490,20))
   pygame.draw.rect(screen,(0,0,255),(5,100,step,20))

(二)设置步长,并循环递增


step += 1

(三)完整代码


import pygame,sys

pygame.init()
screen = pygame.display.set_mode((500,300))
pygame.display.set_caption("好看的进度条显示V1.0")
clock = pygame.time.Clock()

step = 0
while True:
   for event in pygame.event.get():
       if event.type == pygame.QUIT or event.type == pygame.K_F1:
           pygame.quit()
           sys.exit()
   screen.fill((255,255,255))
   # screen.fill((0,0,0))
   pygame.draw.rect(screen,(192,192,192),(5,100,490,20))
   pygame.draw.rect(screen,(0,0,255),(5,100,step % 490,20))
   step += 1
   clock.tick(60)
   pygame.display.flip()

(四)运行效果

Python趣味挑战之教你用pygame画进度条

三、第二种进度条

(一)核心代码


pygame.draw.rect(screen,(192,192,192),(5,100,490,20))
   pygame.draw.rect(screen,(0,0,255),(5,100,step % 490,20))
   font1 = pygame.font.Font(r'C:\Windows\Fonts\simsun.ttc', 16)
   text1 = font1.render('%s %%' % str(int((step % 490)/490*100)), True, (255,0,0))
   screen.blit(text1, (245, 100))

(二)完整代码


import pygame,sys

pygame.init()
screen = pygame.display.set_mode((500,300))
pygame.display.set_caption("好看的进度条显示V1.0")
clock = pygame.time.Clock()

step = 0
while True:
   for event in pygame.event.get():
       if event.type == pygame.QUIT or event.type == pygame.K_F1:
           pygame.quit()
           sys.exit()
   screen.fill((255,255,255))
   # screen.fill((0,0,0))
   pygame.draw.rect(screen,(192,192,192),(5,100,490,20))
   pygame.draw.rect(screen,(0,0,255),(5,100,step % 490,20))
   font1 = pygame.font.Font(r'C:\Windows\Fonts\simsun.ttc', 16)
   text1 = font1.render('%s %%' % str(int((step % 490)/490*100)), True, (255,0,0))
   screen.blit(text1, (245, 100))
   step += 1
   clock.tick(60)
   pygame.display.flip()

(三)运行结果

Python趣味挑战之教你用pygame画进度条

四、第三种进度条

(一)核心代码


pygame.draw.rect(screen,(192,192,192),(5,100,length+10,20))
   pygame.draw.rect(screen,(0,0,255),(5,100,step % length,20))
   pygame.draw.circle(screen,(0,0,255),(step % length,110),10)
   font1 = pygame.font.Font(r'C:\Windows\Fonts\simsun.ttc', 16)
   text1 = font1.render('%s %%' % str(int((step % length)/length*100)), True, (255,0,0))
   screen.blit(text1, (245, 100))

(二)完整代码


import pygame,sys

pygame.init()
screen = pygame.display.set_mode((500,300))
pygame.display.set_caption("好看的进度条显示V1.0")
clock = pygame.time.Clock()

step = 0
length = 480
while True:
   for event in pygame.event.get():
       if event.type == pygame.QUIT or event.type == pygame.K_F1:
           pygame.quit()
           sys.exit()
   screen.fill((255,255,255))
   # screen.fill((0,0,0))
   pygame.draw.rect(screen,(192,192,192),(5,100,length+10,20))
   pygame.draw.rect(screen,(0,0,255),(5,100,step % length,20))
   pygame.draw.circle(screen,(0,0,255),(step % length,110),10)
   font1 = pygame.font.Font(r'C:\Windows\Fonts\simsun.ttc', 16)
   text1 = font1.render('%s %%' % str(int((step % length)/length*100)), True, (255,0,0))
   screen.blit(text1, (245, 100))
   step += 1
   clock.tick(60)
   pygame.display.flip()

(三)运行效果

Python趣味挑战之教你用pygame画进度条

五、第四种进度条

(一)加载图片资源


picture = pygame.transform.scale(pygame.image.load('score/5.png'), (20, 20))

(二)画进度条


pygame.draw.rect(screen,(192,192,192),(5,100,length+10,20))
   pygame.draw.rect(screen,(251,174,63),(5,100,step % length,20))

(三)画图片资源


 screen.blit(picture,(step%length,100))

(四)画文字


font1 = pygame.font.Font(r'C:\Windows\Fonts\simsun.ttc', 16)
   text1 = font1.render('%s %%' % str(int((step % length)/length*100)), True, (255,0,0))
   screen.blit(text1, (245, 100))

(五)完整代码


import pygame,sys

pygame.init()
screen = pygame.display.set_mode((500,300))
pygame.display.set_caption("好看的进度条显示V1.0")
clock = pygame.time.Clock()
picture = pygame.transform.scale(pygame.image.load('score/5.png'), (20, 20))

step = 0
length = 480
while True:
   for event in pygame.event.get():
       if event.type == pygame.QUIT or event.type == pygame.K_F1:
           pygame.quit()
           sys.exit()
   screen.fill((255,255,255))
   # screen.fill((0,0,0))
   pygame.draw.rect(screen,(192,192,192),(5,100,length+10,20))
   pygame.draw.rect(screen,(251,174,63),(5,100,step % length,20))
   screen.blit(picture,(step%length,100))

font1 = pygame.font.Font(r'C:\Windows\Fonts\simsun.ttc', 16)
   text1 = font1.render('%s %%' % str(int((step % length)/length*100)), True, (255,0,0))
   screen.blit(text1, (245, 100))
   step += 1
   clock.tick(60)
   pygame.display.flip()

(六)运行效果

Python趣味挑战之教你用pygame画进度条

六、综合案例

(一)完整代码


import pygame,sys

pygame.init()
screen = pygame.display.set_mode((500,300))
pygame.display.set_caption("好看的进度条显示V1.0")
clock = pygame.time.Clock()
picture = pygame.transform.scale(pygame.image.load('score/5.png'), (20, 20))

step = 0
length = 480
while True:
   for event in pygame.event.get():
       if event.type == pygame.QUIT or event.type == pygame.K_F1:
           pygame.quit()
           sys.exit()
   screen.fill((255,255,255))
   # screen.fill((0,0,0))
   # 第一种
   pygame.draw.rect(screen,(192,192,192),(5,100,490,20))
   pygame.draw.rect(screen,(0,0,255),(5,100,step % 490,20))

# 第二种
   pygame.draw.rect(screen,(192,192,192),(5,150,490,20))
   pygame.draw.rect(screen,(0,0,255),(5,150,step % 490,20))
   font1 = pygame.font.Font(r'C:\Windows\Fonts\simsun.ttc', 16)
   text1 = font1.render('%s %%' % str(int((step % 490)/490*100)), True, (255,0,0))
   screen.blit(text1, (245, 150))

# 第三种
   pygame.draw.rect(screen,(192,192,192),(5,200,length+10,20))
   pygame.draw.rect(screen,(0,0,255),(5,200,step % length,20))
   pygame.draw.circle(screen,(0,0,255),(step % length,210),10)
   font1 = pygame.font.Font(r'C:\Windows\Fonts\simsun.ttc', 16)
   text1 = font1.render('%s %%' % str(int((step % length)/length*100)), True, (255,0,0))
   screen.blit(text1, (245, 200))

# 第四种
   pygame.draw.rect(screen,(192,192,192),(5,250,length+10,20))
   pygame.draw.rect(screen,(251,174,63),(5,250,step % length,20))
   screen.blit(picture,(step%length,250))

font1 = pygame.font.Font(r'C:\Windows\Fonts\simsun.ttc', 16)
   text1 = font1.render('%s %%' % str(int((step % length)/length*100)), True, (255,0,0))
   screen.blit(text1, (245, 250))
   step += 1
   clock.tick(60)
   pygame.display.flip()

(二)运行效果

Python趣味挑战之教你用pygame画进度条

OK,写完,本博文纯属科普贴,技术含量不高,入门级别,大家喜欢就好。
而且里面代码相对比较简单,也没有考虑优化,大家在实操过程中可以优化完善,并反馈给我一起进步。

来源:https://blog.csdn.net/dhjabc_1/article/details/117359428

标签:Python,pygame,画,进度条
0
投稿

猜你喜欢

  • Python检测数据类型的方法总结

    2022-08-29 22:07:58
  • 为什么不压缩 HTML

    2010-05-07 12:37:00
  • python中rc1什么意思

    2023-10-24 13:01:38
  • 详解python中递归函数

    2022-04-17 19:40:55
  • [译]JavaScript中的Timer是怎么工作的

    2009-02-06 15:39:00
  • Python几种绘制时间线图的方法

    2021-08-16 10:43:05
  • python 实现兔子生兔子示例

    2022-04-13 05:15:11
  • 详解基于Node.js的微信JS-SDK后端接口实现代码

    2024-05-02 17:37:47
  • Django处理多用户类型的方法介绍

    2022-11-30 10:16:54
  • 使用PyInstaller将python转成可执行文件exe笔记

    2021-11-08 04:12:51
  • 灵活运用Python 枚举类来实现设计状态码信息

    2023-04-29 15:03:34
  • 建立合理的索引提高SQL Server的性能

    2009-01-23 14:44:00
  • vue后台管理添加多语言功能的实现示例

    2024-04-29 13:08:22
  • Git的撤销、修改和回退命令

    2022-12-05 14:10:12
  • python 获取sqlite3数据库的表名和表字段名的实例

    2024-01-24 13:34:22
  • 在antd Form表单中select设置初始值操作

    2024-05-02 17:03:12
  • Jquery插件easyUi表单验证提交(示例代码)

    2023-07-02 05:31:51
  • SQLServer 2000 升级到 SQLServer 2008 性能之需要注意的地方之一

    2012-02-25 19:44:26
  • mysql 5.7.21 解压版安装配置方法图文教程

    2024-01-13 23:26:01
  • Python可视化tkinter详解

    2022-12-31 06:09:19
  • asp之家 网络编程 m.aspxhome.com