91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用python實現彈跳小球

發布時間:2021-04-07 10:20:52 來源:億速云 閱讀:468 作者:小新 欄目:開發技術

這篇文章主要介紹如何使用python實現彈跳小球,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創建窗口

 from tkinter import Tk
 import tkinter
 import random
 import time
 def main():
 
 #創建Tk對象
 tk = tkinter.Tk()
 #窗口取名“Ball”
 tk.title ("Ball")
 #.通知窗口管理器調整布局大小,0,0表示不能被拉升
 tk.resizable (0,0)
 #創建一個長為400*500的界面,背景色為默認
 tk.wm_attributes("-topmost",1)
 canvas = tkinter.Canvas(tk, width=500, height=400, bd=0)
 #通知窗口管理器注冊組件
 canvas.pack()
 #刷新一下界面
 tk.update()

點擊運行就會出現一個Ball的空白窗口

如何使用python實現彈跳小球

創建Ball的類

在這里的話,暫時不一點一點的貼編寫過程的代碼了,直接把代碼貼出來吧

class Ball():
 #注意:特殊方法“init”前后有兩個下劃線,第一個參數永遠是self
 #由于類可以起到模板的作用,因此,可以在創建實例的時候,
 #把一些我們認為必須綁定的屬性強制填寫進去。通過定義一個
 #特殊的init方法,在創建實例的時候,就把canvas,color等屬性綁上去
 def __init__(self,canvas,paddle,color):  
  self.canvas = canvas
  #少了這句話,一直報錯'Ball' object has no attribute 'paddle'
  self.paddle = paddle
  self.id = canvas.create_oval(10,10,25,25,fill=color)
  self.canvas.move(self.id,245,100)

  starts=[-3,-2,-1,-1,1,1,2,3]
  random.shuffle(starts)
  self.x = starts[0]#從list里面隨機取一個
  self.y = -2#-2表示y軸運動的速度
  self.canvas_height = self.canvas.winfo_height()
  self.canvas_width = self.canvas.winfo_width()
  self.hit_bottom = False #設定hit_bottom初始值為false
  
  
 def hit_paddle(self,pos):
  paddle_pos = self.canvas.coords(self.paddle.id)
  if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]:
   if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]:
    return True
  return False

 def draw(self):
  #   self.canvas.move(self.id,0,-1) #表示向上運動
  self.canvas.move(self.id,self.x,self.y)#,self.r,self.l
  pos = self.canvas.coords(self.id)
  if pos[0]<=0:
   self.x = 2
  if pos[1]<=0:
   self.y = 2
  #如果小球碰到了畫布右邊,則把速度改成每次向左2個像素
  if pos[2]>=self.canvas_width:
   self.x = -2
  #如果小球碰到畫布底端 則返回hit_bottom為True
  if pos[3]>=self.canvas_height: 
   self.hit_bottom = True
   
  #判斷球是否撞到了木板
  if self.hit_paddle(pos) == True:
   self.y = -3

木板

#如何增加按一下鍵盤木板動一下的功能?
class Paddle:
 def turn_left(self, evt):
  self.x = -2
 def turn_right(self, evt):
  self.x = 2
  
 def __init__(self,canvas,color):
  self.canvas = canvas
  self.id = canvas.create_rectangle(0,0,150,10,fill=color)
  self.canvas.move(self.id,200,300)
  self.x = 0
  self.canvas_width = self.canvas.winfo_width()
  self.canvas.bind_all('<KeyPress-Left>',self.turn_left)
  self.canvas.bind_all('<KeyPress-Right>',self.turn_right)
  
 def draw(self):
  self.canvas.move(self.id,self.x,0)
  pos = self.canvas.coords(self.id)
  if pos[0] <= 0:
   self.x = 0
  if pos[2] >= self.canvas_width:
    self.x = 0
   


paddle = Paddle(canvas,"blue")
ball = Ball(canvas,paddle,"red")
while 1:
 if ball.hit_bottom==False: #沒有碰到底部的話執行下面的語句
  ball.draw() #調用ball對象的函數draw()
  paddle.draw()#調用paddle對象的函數draw()
  tk.update_idletasks() 
  tk.update() #更新框架
  time.sleep(0.01) #睡眠0.01秒
 elif ball.hit_bottom==True: #要是小球接觸了底部
  canvas.create_text(200,100,text='Aha,you lose it,\nHow about try again?',font=('Times',22)) #在(200,100)坐標處創建文本‘...',字號22號
  tk.update() #更新內容
 
tk.mainloop()
main()

最終完成就是這樣的了,用鍵盤的左右控制藍色的木板接球就可以了

如何使用python實現彈跳小球

要是不小心沒接到,游戲就game over 啦!

如何使用python實現彈跳小球

以上是“如何使用python實現彈跳小球”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

香河县| 当涂县| 浮山县| 黄梅县| 赤水市| 岑溪市| 平和县| 敖汉旗| 得荣县| 石狮市| 牟定县| 麻城市| 碌曲县| 通城县| 开鲁县| 威海市| 林芝县| 泰州市| 南江县| 巴林左旗| 潢川县| 海原县| 崇明县| 蕲春县| 宁晋县| 积石山| 富阳市| 武义县| 临颍县| 婺源县| 姜堰市| 河津市| 滦南县| 青神县| 平原县| 闽清县| 苏尼特左旗| 错那县| 梅州市| 巴林左旗| 德江县|