Python
 Computer >> コンピューター >  >> プログラミング >> Python

TkinterCanvasでボールを動かす


Tkinterは、GUIベースのアプリケーションを作成するために使用される標準のPythonライブラリです。簡単な動くボールアプリケーションを作成するために、ユーザーが画像を追加したり、図形を描いたり、オブジェクトをアニメーション化したりできるCanvasウィジェットを使用できます。アプリケーションには次のコンポーネントがあります

  • ウィンドウに楕円形またはボールを描画するためのCanvasウィジェット。

  • ボールを移動するには、関数 move_ball()を定義する必要があります 。この関数では、ボールがキャンバスの壁に当たったときに常に更新されるボールの位置を定義する必要があります(左、右、上、下)。

  • ボールの位置を更新するには、 canvas.after(duration、function())を使用する必要があります これは、ボールが一定時間後に位置を変えるように反射します。

  • 最後に、コードを実行してアプリケーションを実行します。

# Import the required libraries
from tkinter import *

# Create an instance of tkinter frame or window
win=Tk()

# Set the size of the window
win.geometry("700x350")

# Make the window size fixed
win.resizable(False,False)

# Create a canvas widget
canvas=Canvas(win, width=700, height=350)
canvas.pack()

# Create an oval or ball in the canvas widget
ball=canvas.create_oval(10,10,50,50, fill="green3")

# Move the ball
xspeed=yspeed=3

def move_ball():
   global xspeed, yspeed

   canvas.move(ball, xspeed, yspeed)
   (leftpos, toppos, rightpos, bottompos)=canvas.coords(ball)
   if leftpos <=0 or rightpos>=700:
      xspeed=-xspeed

   if toppos <=0 or bottompos >=350:
      yspeed=-yspeed

   canvas.after(30,move_ball)

canvas.after(30, move_ball)

win.mainloop()

出力

上記のコードを実行すると、キャンバスに可動ボールがあるアプリケーションウィンドウが表示されます。

TkinterCanvasでボールを動かす


  1. Tkinter Canvasをクリアする方法は?

    Tkinterは、ウィンドウにキャンバスを追加する方法を提供します。キャンバスを作成すると、メモリ内のストレージがラップされます。 tkinterでキャンバスを作成している間、クリアまたは削除する必要のあるメモリを効果的に消費します。 キャンバスをクリアするには、 delete()を使用できます 方法。 「all」を指定することで、tkinterフレームに存在するすべてのキャンバスを削除してクリアできます。 例 #Import the tkinter library from tkinter import * #Create an instance of tkinter frame win

  2. キャンバスで画像を中央に配置する方法PythonTkinter

    Tkinterを使用してGUIベースのアプリケーションを作成していて、Tkinterキャンバスに画像をロードしたいとします。 デフォルトでは、キャンバスはその幅と高さに応じて画像をロードしますが、「方向」を渡すことで、画像の位置を任意の方向(N、S、E、W、NS、EWなど)に操作できます。アンカーパラメータの値。アンカーは、画像関数とともに呼び出されるパラメータです。キャンバス内の画像の方向または位置を定義します。 アンカーパラメータを使用することで、テキストと画像を任意の方向に揃えることができます。今のところ、ラベルを使用して画像ラベルを作成します そのような機能、 Label(root