移动精灵在pygame中随时间点击

时间:2018-03-03 21:46:55

标签: python pygame

我正在尝试使用代码来点击精灵,点击一个位置,它会在一段时间内移动到那里。

这是我的代码:

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然后它似乎没有移动到确切的点击位置,我也无法让它移动到( - ,+)象限。不知道如何解决这些问题。

0 个答案:

没有答案