Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pygame:TypeError:结束位置参数无效_Python_Pygame_Typeerror - Fatal编程技术网

Python Pygame:TypeError:结束位置参数无效

Python Pygame:TypeError:结束位置参数无效,python,pygame,typeerror,Python,Pygame,Typeerror,运行此代码时: for p in self.particles : pos1 = p.pos pos2 = p.pos[0]+2*p.vel[0], p.pos[1]+2*p.vel[1] pygame.draw.line(self.screen, p.color, pos1 , pos2 , 2) 我不断地发现这个错误: TypeError:结束位置参数无效` 因此,我使用print p.pos语句来查看p.pos是什么,它神奇地工作了 但唯一的问题

运行此代码时:

for p in self.particles :
       pos1 = p.pos
       pos2 = p.pos[0]+2*p.vel[0], p.pos[1]+2*p.vel[1]
       pygame.draw.line(self.screen, p.color, pos1 , pos2 , 2)
我不断地发现这个错误:

TypeError:结束位置参数无效`

因此,我使用
print p.pos
语句来查看p.pos是什么,它神奇地工作了
但唯一的问题是打印出来会使游戏以每秒10帧的速度运行…
那么如何修复错误呢?

pygame.draw.line(曲面、颜色、起点、终点、宽度=1)

因此,我们需要做: 注意:您的代码可以通过使用向量来简化。 (无论是来自努比还是欧几里得)。 代码变成:其中pos2,pos1,velocity都是向量


如果您的意思是您实际上经常调用
print()
函数或语句,那么您应该删除它以加快程序的速度。
否则,您只是给您的计算机做了太多的工作,可能需要优化您的代码

例如,我看到你在self.particles中对p说

如果你在屏幕上画了很多粒子,试着减少数量——这比优化更像是一种权衡,但这是一种选择

确保你的代码在重要的地方是有效的
例如,你做了很多计算,或者多次调用一个函数

你可能想说:

drawline = pygame.draw.line
并调用
drawline()
,这样可以节省查找时间

pos2 = pos1 + 2* velocity
drawline = pygame.draw.line