Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- from pygame import *
- from math import *
- import random
- import sys
- import time
- MAX_X = 1080
- MAX_Y = 720
- MAX_SNOW = 100
- SNOW_SIZE = 32
- class Snow():
- def __init__(self, x, y):
- self.x = x
- self.y = y
- self.speed = random.randint(1, 3)
- self.img_num = random.randint(1, 4)
- self.image_filename = "snow" + str(self.img_num) + ".png"
- self.image = pygame.image.load(self.image_filename).convert_alpha()
- self.image = pygame.transform.scale(self.image, (SNOW_SIZE, SNOW_SIZE))
- def move_snow(self):
- self.y = self.y + self.speed
- if self.y > MAX_Y:
- self.y = (0 - SNOW_SIZE)
- i = random.randint(1, 3)
- if i == 1: # Move RIGHT
- self.x += 1
- if self.x > MAX_X:
- self.x = (0 - SNOW_SIZE)
- elif i == 2: # Move LEFT
- self.x -= 1
- if self.x < (0 - SNOW_SIZE):
- self.x = MAX_X
- def draw_snow(self):
- screen.blit(self.image, (self.x, self.y))
- def initilize_snow(max_snow, snowfall):
- for i in range(0, max_snow):
- xx = random.randint(0, MAX_X)
- yy = random.randint(0, MAX_Y)
- snowfall.append(Snow(xx, yy))
- def check_for_exit():
- for event in pygame.event.get():
- if event.type == pygame.KEYDOWN or event.type == pygame.QUIT:
- sys.exit()
- def draw_car():
- car.fill(unvis)
- draw.rect(car, RED, [0, 300, 300, 40])
- draw.rect(car, BLACK, [80, 220, 150, 80])
- draw.rect(car, WINDOW, [82, 222, 70, 78])
- draw.rect(car, WINDOW, [155, 222, 73, 78])
- draw.circle(car, BLACK, [195, 260] , 10)
- draw.line(car, BLACK, [195,260], [195,300])
- draw.line(car, BLACK, [218,275], [228, 300])
- draw.circle(car, BLACK, [218, 280] , 7)
- draw.line(car, BLACK, [195, 280],[218,275])
- draw.rect(car, YELLOW, [280, 310, 20, 10])
- draw.rect(car, YELLOW, [0, 310, 20, 10])
- draw.rect(car, BLACK, [90, 310, 15, 5])
- draw.rect(car, BLACK, [165, 310, 15, 5])
- def draw_wheel():
- wheel.fill(unvis)
- draw.circle(wheel, ORANGE, [50, 50], 25)
- draw.line(wheel, BLACK, [50,50], [50,25])
- draw.line(wheel, BLACK, [50,50], [25,50])
- draw.line(wheel, BLACK, [50,50], [50,75])
- draw.line(wheel, BLACK, [50,50], [75,50])
- def rotate(surf, rect, angle):
- new_sur = transform.rotate(surf, angle)
- rect = new_sur.get_rect(center = rect.center)
- return new_sur, rect
- pygame.init()
- clock = pygame.time.Clock()
- BLACK = (0, 0, 0)
- WHITE = (255, 255, 255)
- GREEN = (0, 255, 0)
- RED = (255, 0, 0)
- BLUE = (15, 231, 255)
- GREY = (186, 182, 182)
- YELLOW = (246, 255, 0)
- WINDOW = (157, 214, 232)
- ORANGE = (247, 112, 2)
- unvis = (186, 1, 146)
- screen = display.set_mode((600,400),0,32)
- display.set_caption("Animation")
- bg = Surface(screen.get_size())
- car = Surface((400,400))
- wheel = Surface((100,100))
- car.set_colorkey(unvis)
- bg.set_colorkey(unvis)
- wheel.set_colorkey(unvis)
- screen.set_colorkey(unvis)
- bg.fill((0, 128, 255))
- draw.rect(bg, GREY, [0,250,600,200])
- orig_wheel = wheel
- rect = wheel.get_rect(center=(50,50))
- angle = 0
- x = 0
- y = 320
- for i in range(20):
- draw.rect(bg, WHITE, [x,y,20, 10])
- x += 40
- car_x = 0
- cloud_X = -500
- angle = -1
- draw_car()
- draw_wheel()
- bg_color = (0, 128, 255)
- snowfall = []
- initilize_snow(MAX_SNOW, snowfall)
- run = True
- while run:
- for event in pygame.event.get():
- if event.type == pygame. KEYDOWN or event.type == pygame.QUIT:
- run = False
- for i in snowfall:
- i.move_snow()
- i.draw_snow()
- time.sleep(0.0040)
- pygame.display.flip()
- screen.blit(bg, (0,0))
- screen.blit(car,(car_x,0))
- wheel, rect = rotate(orig_wheel, rect, angle)
- x1 = rect[0]
- y1 = rect[1]
- screen.blit(wheel,[x1+ car_x, y1 + 288])
- screen.blit(wheel,[x1 + car_x + 200, y1 + 288])
- if car_x > 600:
- car_x = -400
- car_x += 2
- angle -= 2
- clock.tick(60)
- pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement