我想写一个乒乓球的代码,但是我在试图控制球拍位置的范围时遇到了一个问题,问题是:在python中,有没有一种方法可以将一个变量保持在某个范围内(具有最大值和最小值),当变量发生变化(将增大)时,它将停留在该范围的最大值上,而当该变量减小时,它将停留在最小值上。在
我写了这个代码:
Range = range(HALF_PAD_HEIGHT, HEIGHT - HALF_PAD_HEIGHT)
if (paddle1_pos[1] in Range) and (paddle2_pos[1] in Range):
paddle1_pos[1] += paddle1_vel[1]
paddle2_pos[1] += paddle2_vel[1]
当桨叶位置(桨叶1_pos[1]和桨叶2_pos[1])的值超出范围时,我无法再使用键盘(通过变量(slade1_vel[1]和padle2_val[2])更新其位置,因此,我在想,python中可能存在一些东西,允许我更新padle_pos,当我到达范围的一个侧面时,它会让我保持在那一边,直到我改变更新的方向。 希望问题是清楚的。在
谢谢
为了完整起见,下面是另一个答案,它展示了如何使用元类以编程方式将整数所拥有的所有算术方法添加到自定义类中。注意,不清楚在任何情况下返回与操作数边界相同的BoundedInt是否有意义。该代码还与python2&3兼容。在
输出:
^{pr2}$您可以定义自己的“有界”数值类型。例如,如果
paddle1_pos[1]
是一个整数值,您可以创建一个类似于下面的类并使用它输出:
^{pr2}$相关问题 更多 >
编程相关推荐