用python寫乙個簡單的彈球遊戲

2021-08-14 15:21:35 字數 3282 閱讀 4249

用python寫乙個簡單的彈球遊戲,可以使用球拍接住球讓球在邊框內不停的彈動,如果球拍沒有接住則遊戲結束

我們需要匯入tkinter模組來建立畫布 ,匯入時間模組來控制球的速度,就是控制球移動的間隔時間 ,匯入隨機模組使球彈的方向是隨機的。

fromtkinterimport*           

importtime

importrandom

tk=tk() #建立乙個介面

tk.title("彈球遊戲")

canvas=canvas(tk,width=800,height=600,bg="skyblue",bd=0,highlightthickness = 0)

tk.resizable(0,0) #表示邊框不能被拉伸

canvas.pack() #使部件放在主視窗中

tk.update() #重新整理介面

classball: #球的類

def__init__(self,canvas,paddle,color):

self.canvas=canvas

self.paddle=paddle

self.id=canvas.create_oval(10,10,25,25,fill=color) #在畫布上畫出乙個球

self.canvas.move(self.id,240,100) #初始球的位置

stat=[-3,-2,-1,1,2,3]

random.shuffle(stat)

self.x=stat[0]

self.y=-3

self.canvas_height=self.canvas.winfo_height() #獲取畫布的的高度

self.canvas_width=self.canvas.winfo_width()

self.hit_bottom=falsedefhit_paddle(self, pos): #判斷輸贏

paddle_pos = self.canvas.coords(self.paddle.id )

ifpos[2]>= paddle_pos[0]andpos[0]<= paddle_pos[2]:

ifpos[3]>= paddle_pos[1]andpos[3]<= paddle_pos[3]:

return truereturn falsedefdraw(self): #小球移動

self.canvas.move(self.id,self.x,self.y)

pos=self.canvas.coords(self.id)

ifpos[1]<=0: #判斷小球是否碰到邊框,如果碰到回彈

self.y=3

ifpos[3]>=self.canvas_height: #判斷球拍是否有接到球 ,如果沒接到遊戲結束

self.hit_bottom=trueifself.hit_paddle(pos)==true: #判斷求是否碰到了球拍,如果碰到了使小球回彈

self.y=-3

ifpos[0]<=0: #來判斷球拍是不是碰到了邊框,,

self.x=3

ifpos[2]>=self.canvas_width:

self.x=-3

classpaddle: #球拍的的類

def__init__(self,canvans,color):

self.canvas=canvas

self.id=canvas.create_rectangle(0,0,150,10,fill=color)

self.canvas.move(self.id,400,450)

self.x=0

self.canvas_width=self.canvas.winfo_width()

self.canvas.bind_all("",self.turn_left) #通過按鍵來使球拍移動

self.canvas.bind_all("", self.turn_right)

defturn_left(self,event): #每次按鍵球拍移動的距離

self.x=-5

defturn_right(self,event):

self.x=5

defdraw(self): #球拍移動的方法

pos=self.canvas.coords(self.id)

self.canvas.move(self.id, self.x, 0)

ifpos[0]<=0:

self.x=0

ifpos[2]>=self.canvas_width:

self.x=0

paddle=paddle(canvas,"blue")

ball=ball(canvas,paddle,"red")

while true: #用迴圈 如果球怕沒有接到球就推出

ifball.hit_bottom==false:

ball.draw()

paddle.draw()

else:

breaktk.update_idletasks()# 不停的重新整理畫布

tk.update()

time.sleep(0.01)

用python寫乙個簡單的視窗

import sys if name main 建立乙個視窗 w qwidget 設定視窗的尺寸 w.resize 400,200 移動視窗 w.move 300,300 設定視窗的標題 w.setwindowtitle 第乙個基於pyqt5的桌面應用 顯示視窗 w.show 進入程式的主迴圈 並通...

ROS 用Python寫乙個簡單服務

一.編寫服務資料 在功能包的頂級目錄中,建立srv資料夾,並在裡面建立.srv檔案 先成為a.srv 在srv檔案中,填入服務資料,如 int64 a int64 b int64 sum其中,上方是請求資料,下方是答應資料 二.修改cmakelist和package.xml cmakelist ca...

用python寫乙個簡單的推薦系統

在上篇文章豆瓣電影,電視劇集dm實戰中提及到,我和室友們產生了劇荒,萌生出要做乙個個人用的推薦系統,解決劇荒的問題的想法,經過一輪的死纏爛打,這個個人推薦系統終於成型了。今天來分享一下心得,對此感興趣的朋友可以自己對著寫乙個。首先介紹一下傳統的推薦系統方法,之所以叫它傳統,是因為大部分學習資料上都是...