gpt4 book ai didi

python - 在特定条件下播放winsound

转载 作者:太空宇宙 更新时间:2023-11-03 16:38:55 25 4
gpt4 key购买 nike

我正在 Tkinter 上制作潜水员跳入水中的动画。我需要程序在他接触水的那一刻发出声音。这是我的代码的部分,但它不起作用。

    from tkinter import *
from tkinter import ttk
from math import *
import winsound, sys
def beep():
winsound.PlaySound('death1.wav' , winsound.SND_FILENAME)

def animate():
nonlocal x,y,flag,t,i
t=i*dt
i=i+1
if y<=PosYe+20: #we define the water level = PosYe+20
Canevas.coords(plongeur,x,y)
x,y=x,y+g*t*dt*m1
if y==PosYe+20 :
beep()

我尝试了这个(只是为了验证它是否可以播放声音),它每次计算出新位置时都会播放声音。所以我想知道在这种情况下我是否不能在条件中编写条件。

    from tkinter import *
from tkinter import ttk
from math import *
import winsound, sys
def beep():
winsound.PlaySound('death1.wav' , winsound.SND_FILENAME)

def animate():
nonlocal x,y,flag,t,i
t=i*dt
i=i+1
if y<=PosYe+20: #we define the water level = PosYe+20
Canevas.coords(plongeur,x,y)
x,y=x,y+g*t*dt*m1
beep()

我需要一些建议才能正确编写条件。

最佳答案

您必须将更新位置部分和反馈部分分开。此外,您还必须确保更新 y头寸落在值 PosYe+20 内因为我们可以有old_y < PosYe+20 < new_y最后,您可以添加一个用 True 初始化的标志。但切换到 False一旦发生碰撞。

您可以尝试以下代码:

if y < PosYe + 20:     #we define the water level = PosYe+20
Canevas.coords(plongeur,x,y)
x,y=x,y+g*t*dt*m1

elif flag and PosYe + 20 <= y :
beep()
flag = False

关于python - 在特定条件下播放winsound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36990903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com