国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python3實現(xiàn)的畫圖及加載圖片動畫效果示例

2020-02-22 22:54:46
字體:
供稿:網(wǎng)友

本文實例講述了Python3實現(xiàn)的畫圖及加載圖片動畫效果。分享給大家供大家參考,具體如下:

#__*__coding:utf-8__*__#python3import timefrom tkinter import *def moveImage(event):#圖片logo.gif的移動要綁定的函數(shù)  if event.keysym=='Up':    canvas.move(1,0,-3)#移動ID為1的事物,使得橫坐標(biāo)加0,縱坐標(biāo)減3  elif event.keysym=='Down':    canvas.move(1,0,+3)  elif event.keysym=='Left':    canvas.move(1,-3,0)  elif event.keysym=='Right':    canvas.move(1,3,0)  tk.update()  time.sleep(0.05)def changeColor(event):  if event.keysym=='Up':    canvas.itemconfig(pg,fill='blue')#填充ID為pg的事物,填充為bluetk=Tk()#窗口canvas=Canvas(tk,width=400,height=400)#畫布canvas.pack()#顯示出來myImage=PhotoImage(file='C://Users//lai//Desktop//logo.gif')#圖片格式必須為gif格式im=canvas.create_image(0,0,anchor=NW,image=myImage)#加載圖片pg=canvas.create_polygon(10,10,10,60,50,35,fill='red')#創(chuàng)建三角形print (im);print (pg) #顯示圖片和三角形的IDcanvas.bind_all('<KeyPress-Up>',moveImage)#綁定方向鍵 upcanvas.bind_all('<KeyPress-Down>',moveImage)canvas.bind_all('<KeyPress-Left>',moveImage)canvas.bind_all('<KeyPress-Right>',moveImage)#canvas.bind_all('<KeyPress-Up>',changeColor)

運行結(jié)果:

摁上下左右鍵后可以移動圖片

擋板游戲例子

#__*__coding:utf-8__*__#python3from tkinter import *import randomimport timeclass Ball:#小球的類  def __init__(self,canvas,paddle,color):    self.canvas=canvas#傳遞畫布值    self.paddle=paddle#把擋板傳遞進(jìn)來    self.id=canvas.create_oval(10,10,25,25,fill=color)#畫橢圓并且保存其ID    self.canvas.move(self.id,245,100)    start=[-3,-2,-1,1,2,3]    random.shuffle(start)#隨機化列表    self.x=start[0]    self.y=-3    self.canvas_heigh=self.canvas.winfo_height()#獲取窗口高度并保存    self.canvas_width=self.canvas.winfo_width()  def draw(self):    self.canvas.move(self.id,self.x,self.y)    pos=self.canvas.coords(self.id)#返回相應(yīng)ID代表的圖形的當(dāng)前坐標(biāo)(左上角和右上角坐標(biāo))    #使得小球不會超出窗口    pad=self.canvas.coords(self.paddle.id)#獲取擋板的坐標(biāo)    if pos[1]<=0 :      self.y=3    if pos[3]>=self.canvas_heigh or(pos[3]>=pad[1] and pos[2]>=pad[0] and pos[2]<=pad[2]):      self.y=-3    if pos[0]<=0:      self.x=3    if pos[2]>=self.canvas_width:      self.x=-3class Paddle:#擋板的類  def __init__(self,canvas,color):    self.canvas=canvas    self.color=color    self.id=canvas.create_rectangle(0,0,100,10,fill=color)    self.canvas.move(self.id,200,300)    self.canvas_width=self.canvas.winfo_width()    self.l=0    self.r=0  def draw(self):    pos=self.canvas.coords(self.id)    if pos[0]<=0:      self.l=0    if pos[2]>=self.canvas_width:      self.r=0  def turn_left(self,event):    self.canvas.move(self.id,self.l,0)    self.l=-20  def turn_right(self,event):    self.canvas.move(self.id,self.r,0)    self.r=20tk=Tk()tk.title('Game')tk.resizable(0,0)#使得窗口大小不可調(diào)整tk.wm_attributes('-topmost',1)#包含畫布的窗口放在其他窗口的前面canvas=Canvas(tk,width=500,height=400,bd=0,highlightthickness=0)#后面兩個參數(shù)去掉邊框canvas.pack()tk.update()paddle=Paddle(canvas,'blue')ball=Ball(canvas,paddle,'red')canvas.bind_all('<KeyPress-Left>',paddle.turn_left)#綁定方向鍵canvas.bind_all('<KeyPress-Right>',paddle.turn_right)while 1:  ball.draw()  paddle.draw()  tk.update_idletasks()#快速重畫屏幕  tk.update()  time.sleep(0.01)            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 烟台市| 乃东县| 建阳市| 林芝县| 将乐县| 句容市| 同江市| 贵定县| 五家渠市| 佛山市| 阿拉善左旗| 沙雅县| 彩票| 奇台县| 鄯善县| 三河市| 平湖市| 安新县| 仲巴县| 屯昌县| 晋江市| 新干县| 互助| 铅山县| 隆德县| 定兴县| 永定县| 平远县| 衡水市| 高陵县| 泊头市| 盐亭县| 洪雅县| 汝阳县| 利辛县| 甘孜| 土默特左旗| 和静县| 简阳市| 理塘县| 来凤县|