Exemplo n.º 1
0
 def __init__(self, position, angle=0):
     self.position = Position(position[0], position[1])
     self.forwardPos = Position(position[0], position[1])
     self.speed = 70
     self.angle = angle
     self.color = 0
     self.collided = False
     self.noGap = 3.0
     self.gap = 0.25
     # pozostali gracze
     self.players = []
Exemplo n.º 2
0
class Curve():
    def __init__(self, position, angle=0):
        self.position = Position(position[0], position[1])
        self.forwardPos = Position(position[0], position[1])
        self.speed = 70
        self.angle = angle
        self.color = 0
        self.collided = False
        self.noGap = 3.0
        self.gap = 0.25
        # pozostali gracze
        self.players = []

    def move(self):
        direction = (cos(radians(self.angle)), sin(radians(self.angle)))
        deltaTime = clock.tick(FPS) / 1000.0
        x = self.speed * direction[0] * deltaTime
        y = self.speed * direction[1] * deltaTime
        self.position = Position(self.position.x + x, self.position.y + y)
        self.forwardPos = Position(self.position.x + 2*x, self.position.y + 2*y)

        if self.checkCollisions():
            self.collided = True

        if self.noGap > 0:
            self.noGap -= deltaTime
        elif self.gap > 0:
            self.gap -= deltaTime
        else:
            self.noGap = 3.0
            self.gap = 0.25

    def draw(self):
        rects = []
        if self.collided:
            rects.append(pygame.draw.circle(screen, RED, self.position.asTuple(), 3))
        elif self.noGap > 0:
            rects.append(pygame.draw.circle(screen, self.color, self.position.asTuple(), 3))

        for player in self.players:
            rects.append(pygame.draw.circle(screen, player.color, player.position.asTuple(), 3))

        return rects

    def checkCollisions(self):
        if 0 <= self.forwardPos.x < width and 0 <= self.forwardPos.y < height:
            c = screen.get_at(self.forwardPos.asTuple())
            return c != BLACK
        else:
            return True
Exemplo n.º 3
0
    def move(self):
        direction = (cos(radians(self.angle)), sin(radians(self.angle)))
        deltaTime = clock.tick(FPS) / 1000.0
        x = self.speed * direction[0] * deltaTime
        y = self.speed * direction[1] * deltaTime
        self.position = Position(self.position.x + x, self.position.y + y)
        self.forwardPos = Position(self.position.x + 2*x, self.position.y + 2*y)

        if self.checkCollisions():
            self.collided = True

        if self.noGap > 0:
            self.noGap -= deltaTime
        elif self.gap > 0:
            self.gap -= deltaTime
        else:
            self.noGap = 3.0
            self.gap = 0.25