Python3實現的畫圖及載入圖片動畫效果樣本,

來源:互聯網
上載者:User

Python3實現的畫圖及載入圖片動畫效果樣本,

本文執行個體講述了Python3實現的畫圖及載入圖片動畫效果。分享給大家供大家參考,具體如下:

#__*__coding:utf-8__*__#python3import timefrom tkinter import *def moveImage(event):#圖片logo.gif的移動要綁定的函數  if event.keysym=='Up':    canvas.move(1,0,-3)#移動ID為1的事物,使得橫座標加0,縱座標減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')#建立三角形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)

運行結果:

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

擋板遊戲例子

#__*__coding:utf-8__*__#python3from tkinter import *import randomimport timeclass Ball:#小球的類  def __init__(self,canvas,paddle,color):    self.canvas=canvas#傳遞畫布值    self.paddle=paddle#把擋板傳遞進來    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)#返回相應ID代表的圖形的當前座標(左上方和右上方座標)    #使得小球不會超出視窗    pad=self.canvas.coords(self.paddle.id)#擷取擋板的座標    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)#使得視窗大小不可調整tk.wm_attributes('-topmost',1)#包含畫布的視窗放在其他視窗的前面canvas=Canvas(tk,width=500,height=400,bd=0,highlightthickness=0)#後面兩個參數去掉邊框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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.