课后作业37一部分
主要是这个计算是否超出边界的减法没看懂,求解一下def move(self):
# 随机计算方向并移动到新的位置(x, y)
new_x = self.x + r.choice()
new_y = self.y + r.choice()
# 检查移动后是否超出场景x轴边界
if new_x < legal_x:
self.x = legal_x - (new_x - legal_x)
elif new_x > legal_x:
self.x = legal_x - (new_x - legal_x)
else:
self.x = new_x
# 检查移动后是否超出场景y轴边界
if new_y < legal_y:
self.y = legal_y - (new_y - legal_y)
elif new_y > legal_y:
self.y = legal_y - (new_y - legal_y)
else:
self.y = new_y 举个例子:数轴上范围1~10
如果new_y=11>10,那么就让y=10-(new_y-10)= 9.
相当于镜面换了个方向,
以此来确保不出界 昨非 发表于 2021-2-26 23:48
举个例子:数轴上范围1~10
如果new_y=11>10,那么就让y=10-(new_y-10)= 9.
相当于镜面换了个方向,
不知这样理解是否正确:
self.y = legal_y - (new_y - legal_y)
#Y轴上现在的位置=Y轴上10的位置-(Y轴上乌龟移动到新的位置—Y轴上10的位置)
#如果是这样,那为什么legal是Y轴上10的位置呢?{:10_277:}
页:
[1]