尝试使用blit以编程方式显示向量

时间:2014-05-03 06:09:55

标签: python list vector blit

python的新手,我只是想测试一些东西。从一些研究中我认为我需要一个列表来存储所有的矢量点

mlist1 = [
[7, 12],
[22, 31],
[4, 17]]

一切都很好我把它作为印刷品来测试。

print (mlist1);

但现在我想将每个元素用作blit的向量。所以我的代码看起来很喜欢这个

for number in mlist1:
    s=pygame.display.set_mode((600, 600));
    newInt = mlist1[number];
    s.blit(array_surface, newInt);

(得到错误:TypeError: list indices must be integers, not list

我知道blit需要一个int,但是还有其他任何可用的函数或我可以做的其他任何事情来实现我的目标吗?我对任何和所有的建议持开放态度(即使这意味着做了一些与我目前正在做的事情不同的事情,我只是从头开始做这一切,对这个意义上的python或向量的经验很少),谢谢你提前。

编辑:

我想提出的另一点是,我想创建一个NavGraph,所以我需要节点,所以这基本上就是节点,所以如果它影响到任何人的答案/评论,只是想把它放在那里。 / p>

编辑2:

为了澄清我的问题,我想解释一下,我基本上试图将一个向量传递给一个blit,但我需要一个整数。我想知道是否有其他功能或其他东西我可以使用基本上传递向量而不是整数仍然在窗口中绘制

2 个答案:

答案 0 :(得分:1)

我不确定blit是你想要的。这会吸引您的坐标。我建议再看一下pygame教程。

import pygame

mlist1 = [
    (7, 12),
    (22, 31),
    (4, 17)]

s = pygame.display.set_mode((600, 600))

for point in mlist1:
    pygame.draw.circle(s, (255, 0, 0), point, 5)

pygame.display.flip()

答案 1 :(得分:0)

这是你要找的吗?

s = pygame.display.set_mode((600, 600));
for point in mlist1:
    s.blit(array_surface, point);