Pygame游戏错误与子弹和数学模块



我一直在制作使用Pygame和Math的游戏。这是一款自上而下的射击游戏。现在,我只有滚动运动和(破碎的)子弹。当我试图通过点击屏幕上的任何位置来发射子弹时,我得到一个错误消息。

File "/home/radioactivethirst/PyCode/zombiesurvival.py", line 55, in <module>
pistol_bullets.append(PistolBullet(player.x, player.y, mouse_x, mouse_y))
File "/home/radioactivethirst/PyCode/zombiesurvival.py", line 29, in __init__
self.x_vel = math.sin(self.angle) * self.speed
TypeError: must be real number, not tuple

子弹应该在点击鼠标时不断地向鼠标所指向的位置移动。附件是我的程序链接。

https://pastebin.com/XC5BzJ89

谢谢你:)

你写了

self.angle = math,atan2(y-mouse_y, x-mouse_x)

然后你有一个调试问题,你从来没有打印出self.angle之前请求StackOverflow。

与其存储math模块的一个2元组,后跟期望的arctan FP值,不如调用math.atan2( ... )并存储其结果。为了说明,用,逗号来分隔元组元素,当引用对象的元素时使用.点,例如math模块中的函数。

请阅读:https://ericlippert.com/2014/03/05/how-to-debug-small-programs


获得flake8 linter,并使用它。Linting会抱怨的E231 missing whitespace after ','这样错别字就更明显了。每个人都会犯错。多做一些,你就会想办法避免重复犯错。使用笔头是避免再犯错别字或愚蠢错误的好方法。机器在为你提供帮助——为什么要拒绝它呢?

相关内容

  • 没有找到相关文章

最新更新