38 lines
960 B
Python
38 lines
960 B
Python
import pygame
|
|
from os import walk
|
|
from random import choice
|
|
|
|
class Car(pygame.sprite.Sprite):
|
|
def __init__(self, pos, groups):
|
|
super().__init__(groups)
|
|
|
|
self.name = 'car'
|
|
|
|
# image
|
|
for _, _, img_list in walk('../graphics/cars'):
|
|
car_name = choice(img_list)
|
|
self.image = pygame.image.load('../graphics/cars/'+car_name).convert_alpha()
|
|
self.rect = self.image.get_rect(center = pos)
|
|
|
|
# float based movement
|
|
self.pos = pygame.math.Vector2(self.rect.center)
|
|
|
|
if pos[0] < 200:
|
|
self.direction = pygame.math.Vector2(1,0)
|
|
|
|
else:
|
|
self.direction = pygame.math.Vector2(-1,0)
|
|
self.image = pygame.transform.flip(self.image, True, False)
|
|
|
|
self.speed = 300
|
|
self.hitbox = self.rect.inflate(0, -self.rect.height / 2)
|
|
|
|
|
|
def update(self, dt):
|
|
self.pos += self.direction * self.speed * dt
|
|
self.hitbox.center = (round(self.pos.x),round(self.pos.y))
|
|
self.rect.center = self.hitbox.center
|
|
|
|
if not -200 < self.rect.x < 3400:
|
|
self.kill()
|