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 = []
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
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