-4
私はpythonでtkinterを使って現実的な重力を作り出そうとしました。重力は働くが、私がアニメーション化しているボールは止まらない。ここに私のコード:Python:重力を停止する
import tkinter as tk
import time
xv=0
yv=0
x=0
y=0
def move(event=None):
global xv,yv, direction
if event.char == 'w':
yv-=15
elif event.char == 'a':
xv-=1
elif event.char == 'd':
xv+=1
elif event.char == 's':
yv+=1
m = tk.Tk()
canvas = tk.Canvas(m)
canvas.pack(expand=2, fill='both')
oval_id = canvas.create_oval(0,0,10,10,fill='red')
canvas.bind_all('<w>', move)
canvas.bind_all('<a>', move)
canvas.bind_all('<d>', move)
canvas.bind_all('<s>', move)
while 0==0:
yv*=0.9
xv*=0.9
x+=xv
y+=yv
yv+=1
if y > 170:
yv=0
time.sleep(0.05)
canvas.move(oval_id,xv,yv)
canvas.update()
ボールは停止しますが、ジャンプするためにwを押すと、画面上で下に降ります。あまりにも多くのコードを使用せずに170pxまで戻すことができますか?
( 'xv'、' yv')、あなたは速度、加速度ないで作業しています。合理的に重大な重力モデルが機能するには、加速度で作業する必要があります。 –
それは私がやっていることではありません。問題は加速ではなく、重力ストップが低くなるという事実です。 – pajamaman7