[英]Bouncing ball without if in python
如何在沒有if
語句的情況下編輯我的程序?
from visual import *
display(title='BasicEdit', x=0, y=0, fullscreen=True,
center=(0,0,0), range=(10,10,10),
background=(0,0,0))
x_axis = arrow(pos=(0,0,0), axis = vector(3,0,0), color=color.green)
y_axis = arrow (pos=(0,0,0), axis = vector(0,3,0), color=color.red)
z_axis = arrow(pos=(0,0,0), axis = vector(0,0,3), color=color.cyan)
ball = sphere(pos=(0,4,0), radius = 0.4, color=color.red)
ball.velocity = vector(0,-1,0)
ground = box(pos = (0,-0.1,0), lenght = 50, height = 0.1, width = 50)
dt = 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
我認為您想從保持相同邏輯的代碼中刪除if/else
條件,您可以為此使用and/or
組合。 例如,對於您的代碼:
if ball.y < 1:
ball.velocity.y = -ball.velocity.y
else:
ball.velocity.y = ball.velocity.y - 9.8 * dt
不使用if/else
可以寫成:
ball.velocity.y = (ball.y < 1 and -ball.velocity.y) or (ball.velocity.y - 9.8 * dt)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.