Сделайте «объект» двигаться по кривой - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь сделать лодку, которая движется по изогнутой линии, но мне удалось только заставить ее перемещаться из одной точки в другую (прямая линия).Я хочу, чтобы он двигался по кривой, как когда лодка движется по стране, потому что она не может пересечь землю.

class virus(object):
    moveRight = [image.load("res/virusMove/right1.png"),
                 image.load("res/virusMove/right2.png"),
                 image.load("res/virusMove/right3.png"),
                 image.load("res/virusMove/right4.png"),
                 image.load("res/virusMove/right5.png"),
                 image.load("res/virusMove/right6.png"),
                 image.load("res/virusMove/right7.png"),
                 image.load("res/virusMove/right8.png"),
                 image.load("res/virusMove/right5.png"),]
    moveLeft = [image.load("res/virusMove/left1.png"),
                image.load("res/virusMove/left2.png"),
                image.load("res/virusMove/left3.png"),
                image.load("res/virusMove/left4.png"),
                image.load("res/virusMove/left5.png"),
                image.load("res/virusMove/left6.png"),
                image.load("res/virusMove/left7.png"),
                image.load("res/virusMove/left8.png"),
                image.load("res/virusMove/left5.png")]

    def __init__(self, x, y, width, height, end):
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.path = [x, end]
        self.moveUnits = 0
        self.vel = 5

    def draw(self, screen):
        self.move()
        if self.moveUnits +1 >= 24:
            self.moveUnits = 0
        if self.vel > 0:
            screen.blit (self.moveRight[self.moveUnits//3], (self.x, self.y))
            self.moveUnits += 1
        else:
            screen.blit (self.moveLeft[self.moveUnits//3], (self.x, self.y))
                self.moveUnits += 1
    def move(self):
        if self.vel > 0:
            if self.x < self.vel + self.path[1]:
                self.x += self.vel
            else:
                self.vel = self.vel * -1
                self.x += self.vel
                self.moveUnits = 0
        else:
            if self.x > self.path[0] - self.vel:
                self.x += self.vel
            else:
                self.vel = self.vel * -1
                self.x += self.vel
                self.moveUnits = 0               

, а затем я сделал что-то вроде

def drawScreen():
    virus.draw(screen)
virus = virus(100, 640, 64, 64, 750) 

а затем я вставил drawScreen в мою беговую петлю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...