Python数学sin/cos编码问题

2024-05-15 03:26:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python创建一个经典的街机游戏“aestroids”,我在你向小行星发射的子弹上遇到了一些问题。我一直在努力追踪问题的发展。当我分别在一张纸上做数学运算时,我得到了我想要的正确答案,但是当子弹跑出来时,子弹似乎只在0度角和45度角的直角上射出。我觉得起源可能来自这个功能:

def bullet():

    global newX,newY,bullangle 
    pygame.draw.rect(screen,white,(newX,newY,5,5))
    print newX, newY
    newX = newX - (math.sin( bullangle ) * 5)
    newY = newY - (math.cos( bullangle ) * 5) 

当按下空格键时,newX和newY被设置为我船的x,y线,bullangle是一个变量,用来保持飞船在空间被击中时的角度。在

以下是完整代码:

^{pr2}$

感谢那些花时间帮助我解决这个问题的人。非常感谢。在


Tags: 答案游戏数学math经典起源小行星街机
1条回答
网友
1楼 · 发布于 2024-05-15 03:26:02

注意:

$ grep bullangle code.py 
       global shoot,newX,newY,num_of_bullets,bullangle,degrees
           bullangle = degrees
   global num_of_bullets,newX,newY,bullangle 
   newX = newX - (math.sin( bullangle ) * 5)
   newY = newY - (math.cos( bullangle ) * 5) 

如您所知,math.sinmath.cos希望它们的参数是弧度,而不是度数,并且,如这行所示:

^{pr2}$

bullangle似乎以度为单位,并且从未转换为弧度。在

相关问题 更多 >

    热门问题