我在小型“战斗模拟”程序中遇到了一些向量和矢量数学问题。屏幕两侧有15个“人”,位于不同的X/Y位置。当他们选择想要射击的敌人时,我无法让他们以正确的角度拍摄。目前,我有这个来确定他们射击后的子弹路径。该代码是关于子弹矩形和目标X/Y位置的。Python/Pygame矢量数学
diff = (self.startX - self.destX, self.startY - self.destY)
distance = math.sqrt(diff[0]**2 + diff[1]**2)
diff_norm = (diff[0]/distance, diff[1]/distance)
self.rect.x -= diff_norm[0]
self.rect.y -= diff_norm[1]
但是这只是让子弹全部进入屏幕的左上角(ish)。 大蓝/白方块是随机移动的小伙子,小白方块就是子弹。
http://gyazo.com/8f219a6b0b561b72bcccdea7e325c51a (这是更好地通过点击在“...”右上角查看MP4格式的GIF)
有些不动,有的飞直线上升......这里发生了什么?
非常感谢,这是它的问题,它现在工作完美,并且你解释了所有我能理解的东西。 – user3371207