这比练习更多是练习工作,但是VIDLE python中的这段代码(作为示例代码)是关于球的弹跳。我想添加另一个球,但它不会像其他球一样反弹。有人可以帮助我让它发挥作用吗?和/或添加另一个对象?以及让它变得有趣的任何提示.....哦,有些人可以成为一个救生员并告诉我如何让它爆炸。没有声音(虽然声音会很好)只是爆炸。 这是代码:
from visual import *
floor = box(length=10, height=2, width=10, color=color.white)
ball = box(length=2, height=2, width=2, pos=(0,4,0), color=color.yellow)
ball.velocity = vector(0,8,0)
ball2 = sphere(length=2, height=2, width=2, pos=(2,4,2), color=color.cyan, material=materials.wood)
ball2.velocity = vector(1,8,1)
dt = 0.04
dt2 = 0.01
while 1:
rate(100)
ball.pos = ball.pos + ball.velocity*dt
if ball.y < 1:
ball.velocity.y = -ball.velocity.y
else:
ball.velocity.y = ball.velocity.y - 9.8*dt
while 1:
rate(100)
ball2.pos = ball2.pos + ball2.velocity*dt2
if ball2.y < 1:
ball2.velocity.y = -ball2.velocity.y
else:
ball2.velocity.y = ball2.velocity.y - 9.8*dt2
答案 0 :(得分:0)
你的代码是&#34;卡住&#34;在第一个while 1:
循环中。
查看您的代码并问自己&#34;此代码何时运行&#34;?关于第二个while循环。
答案是&#34;永远不会#34;因为它会继续绕过第一个循环。
你需要只有一个循环处理两个球,而不是一个循环用于一个球,然后另一个循环用于另一个球。
while 1:
rate(100)
ball.pos = ball.pos + ball.velocity*dt
if ball.y < 1:
ball.velocity.y = -ball.velocity.y
else:
ball.velocity.y = ball.velocity.y - 9.8*dt
ball2.pos = ball2.pos + ball2.velocity*dt2
if ball2.y < 1:
ball2.velocity.y = -ball2.velocity.y
else:
ball2.velocity.y = ball2.velocity.y - 9.8*dt2
并且有些人可以成为救生员并告诉我如何让它爆炸
Stack Overflow上每个问题只能得到一个问题;)
关于爆炸:你需要在爆炸之前更熟悉python的基础知识(比如循环的工作原理)。