Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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 线性运动图像到鼠标_Python_Python 3.x_Pygame_Transform - Fatal编程技术网

Python 线性运动图像到鼠标

Python 线性运动图像到鼠标,python,python-3.x,pygame,transform,Python,Python 3.x,Pygame,Transform,我有两点——起点和终点。(X,Y)我必须创建一个项目符号。我创建了一个简单的代码: def Entities(): ##BULLETS #bullets array for x in gd.bulletList: dist = gd.Dist( gd.bulletList[x].X, gd.bulletList[x].Y, gd.bulletList[x].M

我有两点——起点和终点。(X,Y)我必须创建一个项目符号。我创建了一个简单的代码:

def Entities():
    ##BULLETS
    #bullets array
    for x in gd.bulletList:
        dist = gd.Dist(
                gd.bulletList[x].X,
                gd.bulletList[x].Y, 
                gd.bulletList[x].MX, 
                gd.bulletList[x].MY)
        ## MX - DestX, MY - DestY, X и Y. Speed - speed.
        if (gd.bulletList[x].X < gd.bulletList[x].MX):
            gd.bulletList[x].X = gd.bulletList[x].speed
        if (gd.bulletList[x].X > gd.bulletList[x].MX):
            gd.bulletList[x].X -= gd.bulletList[x].speed
        if (gd.bulletList[x].Y < gd.bulletList[x].MY):
            gd.bulletList[x].Y += gd.bulletList[x].speed
        if (gd.bulletList[x].Y > gd.bulletList[x].MY):
            gd.bulletList[x].Y -= gd.bulletList[x].speed
        win.blit(spd.sprites['bullet'], (gd.bulletList[x].X, gd.bulletList[x].Y))
def Entities():
##子弹
#子弹阵列
对于gd.bulletList中的x:
dist=gd.dist(
gd.bulletList[x].x,
gd.bulletList[x].Y,
gd.bulletList[x].MX,
gd.bulletList[x].MY)
##MX-DestX,MY-DestY,X‚Y.速度-速度。
如果(gd.bulletList[x].xgd.bulletList[x].MX):
gd.bulletList[x].x-=gd.bulletList[x].速度
如果(gd.bulletList[x].Ygd.bulletList[x].MY):
gd.bulletList[x].Y-=gd.bulletList[x].speed
win.blit(spd.sprites['bullet'],(gd.bulletList[x].x,gd.bulletList[x].Y))
创建如下内容:


请帮帮我如何创建统一的运动

使用以下公式计算从子弹位置到目标的矢量:

tragetPos=pygame.math.Vector2(bullet.MX,bullet.MY) bulletPos=pygame.math.Vector2(bullet.X,bullet.Y) bulletDir=tragetPos-bulletPos 计算向量()的长度。长度是子弹到目标的当前距离:

distance=bulletDir.length()
规格化方向向量()。这意味着向量成为长度为1:

bulletDir=bulletDir.normalize()
子弹必须以最小速度(
bullet.speed
)和到目标的距离(子弹不应超出目标)沿目标方向移动。计算项目符号的新位置:

bulletPos=bulletPos+bulletDir*min(距离、速度)
最后,可以设置属性
X
Y
,项目符号可以是
blit
。该函数可能如下所示:

def Entities():
对于gd.bulletList中的项目符号:
tragetPos=pygame.math.Vector2(bullet.MX,bullet.MY)
bulletPos=pygame.math.Vector2(bullet.X,bullet.Y)
bulletDir=tragetPos-bulletPos
距离=bulletDir.length()
如果距离>0:
bulletDir=bulletDir.normalize()
bulletPos=bulletPos+bulletDir*min(距离、速度)
bullet.X,bullet.Y=bullet位置
win.blit(spd.sprites['bullet'],(int(bullet.X),int(bullet.Y)))

您的代码到底有什么问题?请参阅