PYTHON: coches que se chocan por una bola movida por mi

r = False

l = False

u = False

d = False

x = 60

y = 60

numCoches = 30

myCars = []


def setup():

    size(800, 600)

    global myCars

    myCars = []

    

    for i in range(numCoches):

        c = color(random(255), random(255), random(255))

        xpos = random(width - 5)

        ypos = random(height - 5)

        xspeed = random(-6, 6)

        

        if xspeed == 0:

            xspeed = 1

        

        myCars.append(Car(c, xpos, ypos, xspeed))


def draw():

    background(255)

    muevebola()

    dibujabola()

    

    for car in myCars:

        car.drive()

        

        if dist(x, y, car.xpos, car.ypos) < 27:

            noLoop() 

        

        car.display()


def muevebola():

    global x, y

    if r:

        x = x + 2

    if l:

        x = x - 2

    if u:

        y = y - 2

    if d:

        y = y + 2


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


def dibujabola():

    circle(x, y, 30)


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.xpos + self.xspeed

        

        if self.xpos > width and self.xspeed > 0:

            self.xpos = 0

        elif self.xpos < 0 and self.xspeed < 0:

            self.xpos = width

Comentarios

Entradas populares de este blog

Medidas de Seguridad

PYTHON: bolas que cuando choquen se pare el programa