我正在尝试使用代码来点击精灵,点击一个位置,它会在一段时间内移动到那里。
这是我的代码:
def update(self, mousePosX, mousePosY, mouseDown):
#Walk
self.walkCool += 1
self.rect.x += self.xIncrement
self.rect.y += self.yIncrement
if self.rect.x == self.targetX:
self.yIncrement = 0
self.xIncrement = 0
if self.selected == True:
pg.draw.line(screen, (18, 219, 255), (self.rect.x + self.size//2, self.rect.y + self.size//2) , (mousePosX, mousePosY), 3)
if mouseDown[0] and self.walkCool > 20:
self.targetX = mousePosX
self.targetY = mousePosY
self.dy = self.targetY - self.rect.y
self.dx = self.targetX - self.rect.x
print(self.dx,self.dy)
self.yIncrement = self.dy/self.dx
if self.dy > 0 and self.dx < 0:
self.yIncrement = self.yIncrement * -1
if self.dx < 0:
self.xIncrement = -1
elif self.dx > 0:
self.xIncrement = 1
else:
self.xIncrement = 0
上面的代码用于我的sprite类中的更新函数(每次更新循环时调用它)。我的问题是,如果我得到一个dx / dy&lt; 1然后它似乎没有移动到确切的点击位置,我也无法让它移动到( - ,+)象限。不知道如何解决这些问题。