当前位置: 首页 > 知识库问答 >
问题:

给定x和y坐标pyGame绘制形状

顾乐心
2023-03-14

我试图画一系列给定坐标的矩形,这只是一个x和y值的列表。

这是我的密码:

import pygame

pygame.init()

screen = pygame.display.set_mode((400, 400))

x = [5, 5, 4, 5]
y = [2, 3, 4, 4]


def draw(x, y):
    block = 30

    coord = zip(x, y)

    for _x, _y in coord:

        _x1 = _x * block
        _y1 = _y * block
        x2 = _x1 + block
        y2 = _y1 + block

        pygame.draw.rect(screen, 0xffffff, (_x1, _y1, x2, y2))


running = True

while running:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:
            running = False
    draw(x, y)
    pygame.display.flip()

pygame.quit()
quit()

代码应绘制类似以下内容的形状:

 0
 0
00

相反,它画的东西没有连贯的形状。

共有1个答案

常海
2023-03-14

更改此行:

pygame.draw.rect(screen, 0xffffff, (_x1, _y1, x2, y2))

为此:

pygame.draw.rect(screen, 0xffffff, (_x1, _y1, block, block))

draw.rect将矩形作为参数,参数由(x,y,width,height)指定

对于x1=5,如果你做了(x1,y1,x2,y2)它的意思是(x=150,y=60,宽度=180,高度=90)

 类似资料:
  • 从我的阅读中,我了解到LibGdx使用左下角表示0、0和yup。好吧。我看到,如果我愿意,很容易将其改为y,但我不明白接下来创建的代码。 对于创建的默认精灵,位置设置如下。 当我运行这个基本程序时,我看到我添加的标志图像在屏幕上居中。我想要理解的是,为什么设置位置的值是负值,为什么使用sprite width和height而不是视图端口的w、h?如果我更改为屏幕宽度和高度,那么图像将绘制在屏幕右下

  • 目前,b1和b2相互重叠。如何像这样分别绘制它们:

  • 问题内容: 我试图将一系列JLabel放置在JPanel上的特定X和Y坐标上(并设置其高度和宽度)。无论我做什么,每个标签都会立即跳到上一个标签的右侧,并且具有与所有其他标签完全相同的尺寸。 现在,我的Jpanel位于网格布局中。我尝试了绝对布局(非法参数异常结果),自由设计(没有标签出现),流程布局(所有内容都被压缩到中间)以及其他一些内容。 不知道我需要做些什么才能使这项工作。有人可以帮忙吗?

  • 所以我正在尝试制作一个程序,在我单击画布的地方它会在我单击的位置创建一个形状。当我单击时,我无法抓取鼠标的x和y坐标并使用我的形状的x和y坐标 我的HTML代码: 我的JavaScript代码: 我正在尝试找出是否可以使用我的鼠标x和y坐标为我的形状生成位置。任何帮助都将不胜感激。谢谢。

  • 问题内容: 我具有纽约市纽约市的纬度/经度值;40.7560540,-73.9869510和地球的平面图像,即1000px×446px。 我希望能够使用Javascript将纬度/经度转换为X,Y坐标,该点将反映该位置。 因此,图像左上角的X,Y坐标将是;289、111 注意事项: 不用担心要使用哪种投影的问题,可以自己做假设,也可以按照自己知道的可行的方法进行操作 X,Y可以形成图像的任意一角