最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python GUI實現(xiàn)小球滿屏亂跑效果

 更新時間:2019年05月09日 15:14:45   作者:x6_9x  
這篇文章主要為大家詳細(xì)介紹了python GUI實現(xiàn)小球滿屏亂跑效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python GUI實現(xiàn)小球滿屏亂跑效果的具體代碼,供大家參考,具體內(nèi)容如下

學(xué)習(xí)tkinter有一段時間了,綜合運用一下,做一個類似屏保類的東西,碰到屏幕邊緣就反彈回來的那種。

初級篇:上下單向移動

from tkinter import *
import random
import time
#
#創(chuàng)建一個類,這個類含有兩個參數(shù),一個是畫布,一個是球的顏色
#
class Ball:
 def __init__(self,canvas,color):
 self.canvas = canvas
 self.id = canvas.create_oval(10,10,25,25,fill=color)
 self.canvas.move(self.id,245,100)
 #來回反彈
 self.x = 0
 self.y = -1
 #winfo_height()函數(shù)來獲取畫布當(dāng)前的高度,賦值給對象變量
 self.canvas_height = self.canvas.winfo_height()
 def draw(self):
 self.canvas.move(self.id,self.x,self.y)
 #獲取某個對象在畫布的坐標(biāo),返回一個數(shù)組(兩個坐標(biāo),左上角的坐標(biāo)和右下角的兩個坐標(biāo))
 pos = self.canvas.coords(self.id)
 #打印獲取的坐標(biāo)
 print(pos)
 #如果最上面的縱軸坐標(biāo)在頂上,則往下移動一個像素
 if pos[1] <= 0:
 self.y = 1
 #如果最下面的縱軸坐標(biāo)在底上,則向上移動
 if pos[3] > self.canvas_height:
 self.y = -1


#創(chuàng)建畫布
tk = Tk()
tk.title("Game_ball")
tk.resizable(0,0)
tk.wm_attributes("-topmost",1)
#bd=0,highlightthickness=0 畫布之外沒有邊框
canvas = Canvas(tk,width=500,height=400,bd=0,highlightthickness=0)
canvas.pack()
tk.update()

#創(chuàng)建對象 
ball = Ball(canvas,'red')

#一直保持循環(huán)
while 1:
 ball.draw()
 #快速刷新屏幕
 tk.update_idletasks()
 tk.update()
 time.sleep(0.01)

這個移動的效果是上下移動的。

進(jìn)階篇:隨機移動

#########################
#上面的例子小球只能上下移動,這次改變下規(guī)則,使之能自由運動,滿屏亂動,用random里面的洗牌函數(shù)
######################
from tkinter import *
import random
import time
#
#創(chuàng)建一個類,這個類含有兩個參數(shù),一個是畫布,一個是球的顏色
#
class Ball:
 def __init__(self,canvas,color):
 self.canvas = canvas
 self.id = canvas.create_oval(10,10,25,25,fill=color)
 self.canvas.move(self.id,245,100)
 #來回反彈
 #--self.x = 0
 #--self.y = -1
 starts = [-3,-2,-1,1,2,3]
 random.shuffle(starts)
 self.x = starts[0]
 self.y = -3
 #winfo_height()函數(shù)來獲取畫布當(dāng)前的高度,賦值給對象變量
 self.canvas_height = self.canvas.winfo_height()
 #獲取X軸坐標(biāo)
 self.canvas_width = self.canvas.winfo_width()
 def draw(self):
 self.canvas.move(self.id,self.x,self.y)
 #獲取某個對象在畫布的坐標(biāo),返回一個數(shù)組(兩個坐標(biāo),左上角的坐標(biāo)和右下角的兩個坐標(biāo))
 pos = self.canvas.coords(self.id)
 #打印獲取的坐標(biāo)
 print(pos)
 #如果最上面的縱軸坐標(biāo)在頂上,則往下移動一個像素
 if pos[1] <= 0:
 self.y = 1
 #如果最下面的縱軸坐標(biāo)在底上,則向上移動
 if pos[3] > self.canvas_height:
 self.y = -1
 #寬度控制#
 #如果在左邊框了,那么向右邊移動3像素
 if pos[0] <= 0:
 self.x = 3
 #如果到右邊框了,左移動3像素
 if pos[2] > self.canvas_width:
 self.x = -3


#創(chuàng)建畫布
tk = Tk()
tk.title("Game_ball")
tk.resizable(0,0)
tk.wm_attributes("-topmost",1)
#bd=0,highlightthickness=0 畫布之外沒有邊框
canvas = Canvas(tk,width=500,height=400,bd=0,highlightthickness=0)
canvas.pack()
tk.update()

#創(chuàng)建對象 
ball = Ball(canvas,'red')

#一直保持循環(huán)
while 1:
 ball.draw()
 #快速刷新屏幕
 tk.update_idletasks()
 tk.update()
 time.sleep(0.01)

這個就達(dá)到了小球滿屏亂跑的效果。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python學(xué)習(xí)筆記嵌套循環(huán)詳解

    Python學(xué)習(xí)筆記嵌套循環(huán)詳解

    這篇文章主要介紹了Python學(xué)習(xí)筆記嵌套循環(huán)詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • Django怎么在admin后臺注冊數(shù)據(jù)庫表

    Django怎么在admin后臺注冊數(shù)據(jù)庫表

    這篇文章主要介紹了Django怎么在admin后臺注冊數(shù)據(jù)庫表,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Python可執(zhí)行文件反編譯教程(exe轉(zhuǎn)py)

    Python可執(zhí)行文件反編譯教程(exe轉(zhuǎn)py)

    python的便利性,使得如今許多軟件開發(fā)者、黑客都開始使用python打包成exe的方式進(jìn)行程序的發(fā)布,那么Python如何反編譯可執(zhí)行文件,本文就來介紹一下,感興趣的可以了解一下
    2021-12-12
  • 用Python繪制漫步圖實例講解

    用Python繪制漫步圖實例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于用Python繪制漫步圖實例講解內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • Python第三方庫h5py_讀取mat文件并顯示值的方法

    Python第三方庫h5py_讀取mat文件并顯示值的方法

    今天小編就為大家分享一篇Python第三方庫h5py_讀取mat文件并顯示值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python中strip(),lstrip(),rstrip()函數(shù)的使用講解

    python中strip(),lstrip(),rstrip()函數(shù)的使用講解

    這篇文章主要介紹了python中strip(),lstrip(),rstrip()函數(shù)的使用講解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python利用自帶模塊實現(xiàn)屏幕像素高效操作

    Python利用自帶模塊實現(xiàn)屏幕像素高效操作

    這篇文章主要為大家詳細(xì)介紹了Python如何利用自帶模塊實現(xiàn)屏幕像素高效操作,文中的示例代碼講解詳,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • langchain Prompt大語言模型使用技巧詳解

    langchain Prompt大語言模型使用技巧詳解

    這篇文章主要為大家介紹了langchain Prompt大語言模型使用技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Python獲取遠(yuǎn)程文件大小的函數(shù)代碼分享

    Python獲取遠(yuǎn)程文件大小的函數(shù)代碼分享

    這篇文章主要介紹了Python獲取遠(yuǎn)程文件大小的函數(shù)代碼分享,需要的朋友可以參考下
    2014-05-05
  • python檢查URL是否正常訪問的小技巧

    python檢查URL是否正常訪問的小技巧

    檢查一個URL是否正常很容易,如果檢查2000個URL,或者是大批量的URL怎么辦?這篇文章就為大家介紹了python檢查URL是否正常訪問的小技巧,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評論

乌兰察布市| 常德市| 洛扎县| 镇远县| 霞浦县| 渑池县| 安多县| 教育| 临高县| 甘德县| 兰考县| 广元市| 元谋县| 德惠市| 双鸭山市| 大邑县| 革吉县| 肃宁县| 荔浦县| 罗江县| 岳西县| 额济纳旗| 克山县| 宁河县| 黄大仙区| 吴旗县| 吉木萨尔县| 大悟县| 阿荣旗| 藁城市| 崇左市| 禹城市| 辛集市| 道孚县| 侯马市| 东光县| 蕲春县| 和平区| 龙门县| 浮梁县| 贵德县|