Python Turtle制作Pong游戏时Paddle位置不对称问题求助
Pong游戏Paddle位置不对称的原因及解决方法
核心原因
画布坐标与Paddle宽度的冲突
Turtle创建的800宽窗口,画布坐标范围是**-400(左边界)到400(右边界)**,中心为(0,0)。你把玩家2的Paddle中心设为380,若Paddle有宽度(比如默认方形20px宽,拉伸后更宽),它的右边缘坐标就是380 + (Paddle宽度/2),这个值会非常接近甚至超过右边界400,视觉上就会显得紧贴右边界;而玩家1的Paddle中心-380,左边缘是-380 - (Paddle宽度/2),离左边界-400还有一段距离,自然看起来不对称。锚点设置不一致
如果两个Paddle的定位基准(锚点)不一样,比如玩家1用默认的中心锚点,玩家2改成了左对齐(setanchor("west")),那设置380坐标时,玩家2的Paddle左边缘会落在380,右边缘直接延伸到380+宽度,进一步贴近边界。窗口边框的视觉误差
setup(width=800)设置的是整个窗口的大小(包含标题栏、边框),实际可用的画布宽度会略小于800,导致右边界的实际显示位置比400略靠左,让380位置的Paddle看起来更挤。
快速修正方法
- 计算对称坐标:先确定Paddle的实际宽度(比如默认方形20px,
shapesize(stretch_len=2)就是40px),假设想让Paddle离边界留20px空隙,那么:
玩家1中心坐标:-400 + (Paddle宽度/2) + 20
玩家2中心坐标:400 - (Paddle宽度/2) - 20
举个例子,Paddle宽度20px,玩家1就是-400+10+20=-370,玩家2是400-10-20=370,这样两边空隙一致。 - 统一锚点设置:确保两个Paddle都用默认的中心锚点(Turtle默认就是
"center",无需额外修改),避免定位基准混乱。
内容的提问来源于stack exchange,提问作者Matteo Linux
相关产品推荐
相关产品推荐

