欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

學習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ù)來獲取畫布當前的高度,賦值給對象變量
 self.canvas_height = self.canvas.winfo_height()
 def draw(self):
 self.canvas.move(self.id,self.x,self.y)
 #獲取某個對象在畫布的坐標,返回一個數(shù)組(兩個坐標,左上角的坐標和右下角的兩個坐標)
 pos = self.canvas.coords(self.id)
 #打印獲取的坐標
 print(pos)
 #如果最上面的縱軸坐標在頂上,則往下移動一個像素
 if pos[1] <= 0:
 self.y = 1
 #如果最下面的縱軸坐標在底上,則向上移動
 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)

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

進階篇:隨機移動

#########################
#上面的例子小球只能上下移動,這次改變下規(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ù)來獲取畫布當前的高度,賦值給對象變量
 self.canvas_height = self.canvas.winfo_height()
 #獲取X軸坐標
 self.canvas_width = self.canvas.winfo_width()
 def draw(self):
 self.canvas.move(self.id,self.x,self.y)
 #獲取某個對象在畫布的坐標,返回一個數(shù)組(兩個坐標,左上角的坐標和右下角的兩個坐標)
 pos = self.canvas.coords(self.id)
 #打印獲取的坐標
 print(pos)
 #如果最上面的縱軸坐標在頂上,則往下移動一個像素
 if pos[1] <= 0:
 self.y = 1
 #如果最下面的縱軸坐標在底上,則向上移動
 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)

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

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

相關文章

  • python回溯算法實現(xiàn)全排列小練習分享

    python回溯算法實現(xiàn)全排列小練習分享

    這篇文章主要給大家分享的是python回溯算法實現(xiàn)全排列小練習,文章根據(jù)例子:輸入列表L(不含重復元素),輸出L的全排列展開學習,需要的小伙伴可以參考一下
    2022-02-02
  • Python下簡易的單例模式詳解

    Python下簡易的單例模式詳解

    這篇文章主要介紹了Python下簡易的單例模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • python中yield的用法詳解

    python中yield的用法詳解

    這篇文章主要介紹了python中yield的用法詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 基于pycharm導入模塊顯示不存在的解決方法

    基于pycharm導入模塊顯示不存在的解決方法

    今天小編就為大家分享一篇基于pycharm導入模塊顯示不存在的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python?Web?App開發(fā)Dockerfiles編寫示例

    Python?Web?App開發(fā)Dockerfiles編寫示例

    這篇文章主要為大家介紹了Python?Web?App編寫Dockerfiles的示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Python字符串詳細介紹

    Python字符串詳細介紹

    這篇文章主要介紹了Python字符串詳解,本文講解了字符串相關知識、字符串的一些特性、原始字符串、unicode字符串、字符串的常用操作方法、內(nèi)建函數(shù)列表等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Python調(diào)用shell cmd方法代碼示例解析

    Python調(diào)用shell cmd方法代碼示例解析

    這篇文章主要介紹了Python調(diào)用shell cmd方法代碼示例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Python流程控制常用工具詳解

    Python流程控制常用工具詳解

    這篇文章主要介紹了Python流程控制常用工具詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • python去除拼音聲調(diào)字母,替換為字母的方法

    python去除拼音聲調(diào)字母,替換為字母的方法

    今天小編就為大家分享一篇python去除拼音聲調(diào)字母,替換為字母的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python操作PostgreSql數(shù)據(jù)庫的方法(基本的增刪改查)

    Python操作PostgreSql數(shù)據(jù)庫的方法(基本的增刪改查)

    這篇文章主要介紹了Python操作PostgreSql數(shù)據(jù)庫(基本的增刪改查),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12

最新評論