Bola que se choca con coche y para python

r = l = u = d = False

x = 50
y = 50

numcoches = 30
xbola = 30
ybola = 30

cars = [] 

def setup():
    size(800, 800)
    frameRate(80)
    
    global cars
    for i in range(numcoches):
        c = color(random(255), random(255), random(255))
        xpos = random(10, width - 10)
        ypos = random(10, height - 10)
        xspeed = random(-5, 5)
        cars.append(Car(c, xpos, ypos, xspeed))


def draw():
    global x, y
    background(0)
    
    ellipse(x, y, xbola, ybola)

    if r:
        x += 1
    if l:
        x -= 1
    if u:
        y -= 1
    if d:
        y += 1
   
    for car in cars:
        car.drive()
        if dist(x, y, car.xpos, car.ypos) < 27:
            noLoop()
        car.display()


def keyPressed():
    global r, l, u, d
    if keyCode == RIGHT:
        r = True
    if keyCode == LEFT:
        l = True
    if keyCode == UP:
        u = True
    if keyCode == DOWN:
        d = True


def keyReleased():
    global r, l, u, d
    if keyCode == RIGHT:
        r = False
    if keyCode == LEFT:
        l = False
    if keyCode == UP:
        u = False
    if keyCode == DOWN:
        d = False


class Car:
    def __init__(self, c, xpos, ypos, xspeed):
        self.c = c
        self.xpos = xpos
        self.ypos = ypos
        self.xspeed = xspeed

    def display(self):
        stroke(0)
        fill(self.c)
        rectMode(CENTER)
        rect(self.xpos, self.ypos, 20, 10)

    def drive(self):
        self.xpos += self.xspeed
        if self.xpos > width:
            self.xpos = 0
        if self.xpos < 0:
            self.xpos = width

Comentarios