首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的Python海龟屏幕不对称?

为什么我的Python海龟屏幕不对称?
EN

Stack Overflow用户
提问于 2022-02-21 19:55:20
回答 1查看 78关注 0票数 1

我创造了一个乒乓游戏,在那里我注意到,桨不是平等地放置在屏幕边缘。

我创建了一个800像素宽的屏幕,并在xcor = 380和xcor = -380处放置了桨,但在屏幕上左桨显示了一些空白,而右桨没有。我的屏幕不对称吗?我该怎么解决呢?

代码语言:javascript
复制
screen.setup(width=800, height=600)
screen.bgcolor("black")
screen.title("PONG")
screen.tracer(0)

l_paddle = Paddle()
l_paddle.create_paddle((-380, 0))
r_paddle = Paddle()
r_paddle.create_paddle((380, 0))

屏幕截图

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-22 17:22:42

当我们为setup()指定窗口大小时,我们指的是屏幕上使用的总像素。因为窗口周围有铬元素(边、标题栏等)。我们工作的实际面积要小一点。试图将两只海龟放置在左右边缘,忽略了铬:

代码语言:javascript
复制
from turtle import Screen, Turtle

CURSOR_SIZE = 20

WIDTH, HEIGHT = 600, 400

screen = Screen()
screen.setup(WIDTH, HEIGHT)

l_paddle = Turtle('square')
l_paddle.fillcolor('white')
l_paddle.setx(CURSOR_SIZE/2 - WIDTH/2)

r_paddle = Turtle('square')
r_paddle.fillcolor('white')
r_paddle.setx(WIDTH/2 - CURSOR_SIZE/2)

screen.exitonclick()

我们得到了一个与你相似的结果:

如果我们补偿了内部和外部的铬元素:

代码语言:javascript
复制
from turtle import Screen, Turtle

CURSOR_SIZE = 20
BORDER_SIZE = 2  # inside the window
CHROME_SIZE = 9  # around the window

WIDTH, HEIGHT = 600, 400

screen = Screen()
screen.setup(WIDTH, HEIGHT)

l_paddle = Turtle('square')
l_paddle.fillcolor('white')
l_paddle.setx(CURSOR_SIZE/2 - WIDTH/2 + BORDER_SIZE)

r_paddle = Turtle('square')
r_paddle.fillcolor('white')
r_paddle.setx(WIDTH/2 - CURSOR_SIZE/2 - BORDER_SIZE - CHROME_SIZE)

screen.exitonclick()

我们可以得到一个更精确的结果:

这里的问题是,铬的数量是系统依赖的,但海龟没有告诉我们要补偿多少。您可能可以从底层tkinter代码中找到答案。

我的建议是你尽可能地估计,假设它在所有系统上都是不准确的,并且远离边缘,这样就不那么麻烦了。当标题栏是铬的一部分时,Y维中的错误可能更大。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71212296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档