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