更新
This commit is contained in:
69
Python-100-Days/Day01-15/Day13/test3.py
Normal file
69
Python-100-Days/Day01-15/Day13/test3.py
Normal file
@@ -0,0 +1,69 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user