mirror of
https://github.com/13hannes11/outyard-hackathon-rush-hour-co2.git
synced 2024-09-03 20:10:59 +02:00
add vacuum cleaner to suck up balls
Co-authored-by: Laura Januleviciute <januleviciute.laura@gmail.com>
This commit is contained in:
38
Vacuum.py
Normal file
38
Vacuum.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import pygame
|
||||||
|
import random
|
||||||
|
from Bubble import Bubble
|
||||||
|
|
||||||
|
class Vacuum:
|
||||||
|
def __init__(self, bubble_objects):
|
||||||
|
self.posX = -50
|
||||||
|
self.posY = -50
|
||||||
|
self.width = 50
|
||||||
|
self.height = 50
|
||||||
|
self.bubble_objects = bubble_objects
|
||||||
|
|
||||||
|
def draw(self, screen):
|
||||||
|
pygame.draw.rect(screen, (255, 0, 0), pygame.Rect(self.posX, self.posY, self.width, self.height))
|
||||||
|
|
||||||
|
def update(self, screen):
|
||||||
|
x, y = pygame.mouse.get_pos()
|
||||||
|
self.posX = x -(self.width / 2)
|
||||||
|
self.posY = y -(self.height / 2)
|
||||||
|
|
||||||
|
to_remove = []
|
||||||
|
|
||||||
|
for i in range(len(self.bubble_objects)):
|
||||||
|
x = self.bubble_objects[i].posX
|
||||||
|
y = self.bubble_objects[i].posY
|
||||||
|
if isPointInsideRect(x, y, pygame.Rect(self.posX, self.posY, self.width, self.height)):
|
||||||
|
to_remove.append(i)
|
||||||
|
|
||||||
|
for i in reversed(to_remove):
|
||||||
|
del self.bubble_objects[i]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def isPointInsideRect(x, y, rect):
|
||||||
|
if (x > rect.left) and (x < rect.right) and (y > rect.top) and (y < rect.bottom):
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
25
main.py
25
main.py
@@ -3,32 +3,43 @@ import random
|
|||||||
import sys
|
import sys
|
||||||
from pygame.locals import *
|
from pygame.locals import *
|
||||||
|
|
||||||
from Bubble import Bubble
|
|
||||||
from Car import Car
|
from Car import Car
|
||||||
|
from Vacuum import Vacuum
|
||||||
|
|
||||||
pygame.init()
|
pygame.init()
|
||||||
|
|
||||||
|
BUBBLE_LIMIT = 1000
|
||||||
|
|
||||||
SCREEN = pygame.display.set_mode((800,600))
|
SCREEN = pygame.display.set_mode((800,600))
|
||||||
BACKGROUND = (255,255,255)
|
BACKGROUND = (255,255,255)
|
||||||
SCREEN.fill(BACKGROUND)
|
SCREEN.fill(BACKGROUND)
|
||||||
CLOCK = pygame.time.Clock()
|
CLOCK = pygame.time.Clock()
|
||||||
|
|
||||||
car_objects = []
|
game_objects = []
|
||||||
bubble_objects = []
|
bubble_objects = []
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
car_objects.append(Car(random.uniform(0, 200), i * 50, 30, 50, car_objects, directionX=random.uniform(1, 5)))
|
game_objects.append(Car(random.uniform(0, 200), i * 50, 30, 50, bubble_objects, directionX=random.uniform(1, 5)))
|
||||||
|
|
||||||
|
game_objects.append(Vacuum(bubble_objects))
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
SCREEN.fill(BACKGROUND)
|
SCREEN.fill(BACKGROUND)
|
||||||
for game_object in car_objects:
|
|
||||||
|
if len(bubble_objects) < BUBBLE_LIMIT:
|
||||||
|
for game_object in bubble_objects:
|
||||||
game_object.update(SCREEN)
|
game_object.update(SCREEN)
|
||||||
for game_object in car_objects:
|
for game_object in bubble_objects:
|
||||||
game_object.draw(SCREEN)
|
game_object.draw(SCREEN)
|
||||||
|
|
||||||
for game_object in bubble_objects:
|
for game_object in game_objects:
|
||||||
game_object.update(SCREEN)
|
game_object.update(SCREEN)
|
||||||
for game_object in bubble_objects:
|
for game_object in game_objects:
|
||||||
game_object.draw(SCREEN)
|
game_object.draw(SCREEN)
|
||||||
|
else:
|
||||||
|
# TODO game over screen with message to reduce driving cars
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
|
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
|
|||||||
Reference in New Issue
Block a user