| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- from random import randint
- from threading import Thread
- from time import sleep
- import pygame
- class Color(object):
- BLACK = (0, 0, 0)
- WHITE = (255, 255, 255)
- GRAY = (242, 242, 242)
- @staticmethod
- def random_color():
- r = randint(0, 255)
- g = randint(0, 255)
- b = randint(0, 255)
- return r, g, b
- class Car(object):
- def __init__(self, x, y, color):
- self._x = x
- self._y = y
- self._color = color
- def move(self):
- if self._x + 80 < 950:
- self._x += randint(1, 10)
- def draw(self, screen):
- pygame.draw.rect(screen, self._color,
- (self._x, self._y, 80, 40), 0)
- def main():
- class BackgroundTask(Thread):
- def run(self):
- while True:
- screen.fill(Color.GRAY)
- pygame.draw.line(screen, Color.BLACK, (130, 0), (130, 600), 4)
- pygame.draw.line(screen, Color.BLACK, (950, 0), (950, 600), 4)
- for car in cars:
- car.draw(screen)
- pygame.display.flip()
- sleep(0.05)
- for car in cars:
- car.move()
- cars = []
- for index in range(5):
- temp = Car(50, 50 + 120 * index, Color.random_color())
- cars.append(temp)
- pygame.init()
- screen = pygame.display.set_mode((1000, 600))
- BackgroundTask(daemon=True).start()
- running = True
- while running:
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- running = False
- pygame.quit()
- if __name__ == '__main__':
- main()
|