日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

泡泡屏保

發布時間:2023/12/18 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 泡泡屏保 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
import random import tkinter ''' 要求, 1 建立屏保程序, 2. 屏保是隨機球,自己運動 3. 鼠標移動則清除分析: 1, 需要一個ScreenSaver類,一個Ball的類 2. ScreenSaver:1.1: 需要一個canvas, 大小與屏幕一致1.2:程序已啟動,就開始在屏幕上畫小球,小球位置隨機,會動,速度,方向隨機1.3: 鼠標一移動,則程序退出1.4: 多少個小球,建議允許輸入 2. RandomBall:2.1: 大小,顏色,出現位置,運動方向,速度,完全隨機2.2: 球就有移動功能,可以被調用 '''class RandomBall:def __init__(self, canvas, scrnwidth, scrnheight):self.canvas = canvasself.xpos = random.randint(10, int(scrnwidth))self.ypos = random.randint(10, int(scrnheight))self.xvelocity = random.randint(4,20)self.yvelocity = random.randint(4,20)self.scrnwidth = scrnwidthself.scrnheight = scrnheightself.radius = random.randint(20,120)c = lambda : random.randint(0,255)self.color = '#%02x%02x%02x'%(c(),c(),c())def create_ball(self):x1 = self.xpos - self.radiusy1 = self.ypos - self.radiusx2 = self.xpos + self.radiusy2 = self.ypos + self.radiusself.item = self.canvas.create_oval(x1,y1,x2,y2, fill=self.color, outline=self.color)def move_ball(self):self.xpos += self.xvelocityself.ypos += self.yvelocityif self.ypos >= self.scrnheight - self.radius:self.yvelocity = - self.yvelocityif self.ypos <= self.radius:self.yvelocity = abs(self.yvelocity)if self.xpos >= self.scrnwidth - self.radius or self.xpos <= self.radius:self.xvelocity = - self.xvelocityself.canvas.move(self.item, self.xvelocity, self.yvelocity)class ScreenSaver:balls = []def __init__(self,num_balls):self.root = tkinter.Tk()# 取消邊框self.root.overrideredirect(1)# 任何鼠標移動self.root.bind('<Motion>', self.myquit)w,h = self.root.winfo_screenwidth(), self.root.winfo_screenheight()self.canvas = tkinter.Canvas(self.root, width=w, height=h )self.canvas.pack()for i in range(num_balls ):ball = RandomBall(self.canvas, scrnwidth=w, scrnheight=h)ball.create_ball()self.balls.append(ball)self.run_screen_saver()self.root.mainloop()def run_screen_saver(self):for ball in self.balls:ball.move_ball()self.canvas.after(200, self.run_screen_saver)def myquit(self,event):self.root.destroy()if __name__ == "__main__":ScreenSaver(12)

總結

以上是生活随笔為你收集整理的泡泡屏保的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。