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