__author__ = 'ChenYan'

from random importrandintfrom tkinter import *

classRandball():def __init__(self, canvas, scrnwidth, scrnheight):#初始化画布

self.canvas =canvas#初始化球的圆心坐标

self.x_pos = randint(80, int(scrnwidth))

self.y_pos= randint(80, int(scrnheight))#球移动的距离

self.x_move = 10self.y_move= 10

#整个屏幕的宽和高

self.scrnwidth =scrnwidth

self.scrnheight=scrnheight#初始化球的半径

self.radius = randint(40, 70)#随机产生球的颜色

rc = lambda :randint(0,255)

self.color= '#%02x%02x%02x' %(rc(), rc(), rc())defcreate_ball(self):#计算得到用于创建球的四个坐标

x1 = self.x_pos -self.radius

y1= self.x_pos -self.radius

x2= self.x_pos +self.radius

y2= self.x_pos +self.radius#画球

self.item = self.canvas.create_oval(x1, y1, x2, y2, fill=self.color, outline=self.color)defmove_ball(self):'''按指定的距离移动球,如果球碰到障碍向相反的方向移动'''self.x_pos+=self.x_move

self.y_pos+=self.y_moveif self.x_pos >= self.scrnwidth -self.radius:

self.x_move= -self.x_moveif self.y_pos >= self.scrnheight -self.radius:

self.y_move= -self.y_moveif self.x_pos

self.x_move=abs(self.x_move)if self.y_pos

self.y_move=abs(self.y_move)

self.canvas.move(self.item, self.x_move, self.y_move)classScreensaver():

balls=[]def __init__(self, ball_nums):

self.win=Tk()

self.width=self.win.winfo_screenwidth()

self.height=self.win.winfo_screenheight()

self.win.overrideredirect(True)

self.win.attributes('-alpha', 0.3)#绑定事件,有任何动作退出屏保

self.win.bind('', self.exit_screensaver)

self.win.bind('', self.exit_screensaver)

self.canvas= Canvas(self.win, width=self.width, height=self.height, bg='#00FFFF')

self.canvas.pack()for i inrange(0,ball_nums):

ball= Randball(self.canvas, scrnwidth=self.width, scrnheight=self.height)

ball.create_ball()

self.balls.append(ball)

self.run_screensaver()

self.win.mainloop()defrun_screensaver(self):for ball inself.balls:

ball.move_ball()

self.canvas.after(20, self.run_screensaver)defexit_screensaver(self, event):

self.win.destroy()defmain():

Screensaver(15)if __name__=='__main__':

main()

python代码雨屏保_python写的屏保程序相关推荐

  1. python什么字体好看_七个不一样的Python代码写法,让你写出一手漂亮的代码

    原标题:七个不一样的Python代码写法,让你写出一手漂亮的代码 Python语言这么火,有很多同学是从其他语言转行过来的(比如c++,java语言),多多少少写代码的时候也会受其他语言的影响!而对于 ...

  2. 弹球游戏python代码含记分模式_python编写弹球游戏的实现代码

    用Blender制作一个兵乓球小游戏,要编写Python代码需要安装pygame 包没有面对困难的勇气,也就没有享受快乐的权利. python 怎么写双人弹球游戏最难过的事不是别人又得罪你了,而是你自 ...

  3. 图书管理系统python代码课程设计报告_python代码实现图书管理系统

    本文实例为大家分享了python代码实现图书管理系统的具体代码,供大家参考,具体内容如下 图书管理系统 功能简介 添加图书时,图书ID不能重复,图书名可重复 删除,查询,修改功能,输入图书名之后提供所 ...

  4. python写用用户名密码程序_python写用’户登录程序‘的过程

    作业需求: 基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 升级需求: 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程序 ...

  5. python日历小程序_python写的日历小程序

    查看: 14785|回复: 262 [作品展示] python写的日历小程序 电梯直达 发表于 2013-8-19 21:38:32 | 只看该作者 |倒序浏览 |阅读模式 马上注册,结交更多好友,享 ...

  6. python网络爬虫程序_Python写的网络爬虫程序(很简单)

    Python写的网络爬虫程序(很简单) 这是我的一位同学传给我的一个小的网页爬虫程序,觉得挺有意思的,和大家分享一下.不过有一点需要注意,要用python2.3,如果用python3.4会有些问题出现 ...

  7. python代码缩进和冒号_Python缩进和冒号详解

    对于Python而言代码缩进是一种语法,Python没有像其他语言一样采用{}或者begin...end分隔代码块,而是采用代码缩进和冒号来区分代码之间的层次. 缩进的空白数量是可变的,但是所有代码块 ...

  8. python清屏失败_python idle 清屏问题的解决

    在学习和使用python的过程中,少不了要与python idle打交道.但使用python idle都会遇到一个常见而又懊恼的问题--要怎么清屏? 我在stackoverflow看到这样两种答案: ...

  9. python输入10个整数_python练习:编写一个程序,要求用户输入10个整数,然后输出其中最大的奇数,如果用户没有输入奇数,则输出一个消息进行说明。...

    python练习:编写一个程序,要求用户输入10个整数,然后输出其中最大的奇数,如果用户没有输入奇数,则输出一个消息进行说明. 重难点:通过input函数输入的行消息为字符串格式,必须转换为整型,否则 ...

最新文章

  1. iphone怎么投屏到电脑_手机怎么投屏到电脑?这几步轻松学会
  2. 【杂谈】有三AI季划成员的4大专属权益,你是否已经利用好了?
  3. 【全真互联网下音视频通信技术演进】
  4. 「递归」第7集 | 腾讯开源联盟出征!
  5. 【转】Xcode 7 真机调试详细步骤
  6. 神经网络中的优化算法总结
  7. computed用发_Vue中的computed属性和nextTick方法
  8. web3j通过命令行工具新建钱包、更新钱包密码及转账
  9. 使用layui遇到的一些问题及解决方案
  10. 数据结构实现时所需的成员变量、标准对外接口
  11. 【个人笔记】OpenCV4 C++ 快速入门 17课
  12. 太阳电池板特性实验_太阳电池伏安特性的测量
  13. 安全卸载Mac应用程序的方法,最后一种不会产生卸载残留
  14. iota golang
  15. 2022暑假牛客多校1 (A/G/D/I)
  16. HDU5128 The E-pang Palace
  17. 文件宝局域网传输/播放功能Windows10系统经验贴(感谢文件宝用户@卡卡罗特 和@24K 純情)...
  18. 不平凡的一年 2013
  19. maven系列(二)——maven应用分析
  20. 【教程】超详细通过Shizuku转生微信集成WeXposed实现防撤回与红包

热门文章

  1. balance_dirty_pages_ratelimited分析
  2. Corejava知识点
  3. 计算机不工作时硬盘自动响,解决双硬盘计算机硬盘频繁启停(发出声响)的问题...
  4. 拼多多用户数7.88亿成为中国电商第一
  5. Python--Matplotlib简单了解
  6. 适合户外旅游休闲的手表有哪些
  7. pic单片机ccp脉冲捕捉c语言程序,PIC18F的CCP模块的捕捉模式实现电机测速的方法...
  8. IE10及以下的浏览器用不了js中的let
  9. Eclipse中解决.svg文件报错的问题
  10. 使用VScode进行C/C++多文件进行编译,调试,运行小结(CMake版)