Hello all! I've been trying to create a game in Python Processing where a spaceship moves horizontally in order to miss a collision with an asteroid. I'm having difficulty making it so that the game quits when an asteroid hits the spaceship, could anybody help? Here is my code. As you can see, I tried using globals in order use variables from previous classes, but nothing has worked. For this specific approach, no error message popped up, but nothing happened either. Thanks so much!
COLORS = {"black":"#000000", "white":"#FFFFFF", "red":"#FF0000", "green":"#00FF00", "blue":"#D1F5FF", "yellow":"#FFFF00", "orange":"#FFA500", "hendrixorange":"#F58025", "purple":"#9B30FF", "gray":"#808080", "lightgray": "#CACACA", "darkgray":"#A9A9A9"} import random asteroid = [] spaceship = [] stars = [] justPressed = False aX = 0 aY = 0 x = 0 y = 0 def setup(): global aX, aY, X, Y size(640, 480) for s in range(1): X = 320 Y = 440 spaceship.append(Space(X, Y, COLORS["orange"])) for a in range(4): aX = random.randint(0, 640) aY = 0 asteroid.append(Asteroid(aX, aY, COLORS["orange"])) for d in range(100): randX = random.randint(0, 640) randY = random.randint(0, 480) stars.append(Star(randX, randY, COLORS["orange"])) class Space: def __init__(self, x, y, color): self.x = x self.y = y self.color = color def spaceship(self): fill(COLORS["blue"]) stroke(COLORS["white"]) ellipse(self.x, self.y, 75, 75) #body fill(COLORS["green"]) fill(COLORS["gray"]) stroke(COLORS["green"]) ellipse(self.x, self.y + 20, 120, 35) stroke(COLORS["orange"]) fill(COLORS["purple"]) ellipse(self.x, self.y + 20, 10, 10) ellipse(self.x + 30, self.y + 20, 10, 10) ellipse(self.x - 30, self.y + 20, 10, 10) def move(self, dx, dy): self.x += dx self.y += dy class Asteroid: def __init__(self, x, y, color): self.x = x self.y = y self.color = color def update(self): self.velx = 0 self.vely = random.randint(1, 5) self.x += self.velx self.y += self.vely if self.y > 480: self.y = 0 self.x = random.randint(1,640) def asteroid(self): fill(COLORS["lightgray"]) stroke(COLORS["white"]) ellipse(self.x, self.y, 50, 50) fill(COLORS["gray"]) ellipse(self.x +15, self.y + 6, 15, 15) ellipse(self.x -12, self.y + 7, 10, 10) ellipse(self.x + 5, self.y - 13, 11, 11) ellipse(self.x - 12, self.y - 9, 7, 7) ellipse(self.x + 2, self.y + 18, 7, 7) class Star: def __init__(self, x, y, color): self.x = x self.y = y self.color = color def star(self): fill(COLORS["white"]) ellipse(self.x, self.y, 3, 3) def draw(): global justPressed background(COLORS["black"]) for f in stars: f.star() for f in spaceship: f.spaceship() if f.x < 60: f.move(3, 0) elif f.x > 580: f.move(-3, 0) elif justPressed : if key == 'd': f.move(3, 0) elif key == 'a': f.move(-3, 0) for f in asteroid: f.asteroid() f.update() #collision detection 'for' loop distance = sqrt(((aX - X)**2) + ((aY - Y)**2)) for f in asteroid: if distance < 62.5: background(COLORS["red"]) def keyTyped(): global justPressed justPressed = True print("typed", key) def keyPressed(): global justPressed justPressed = True print("pressed", key) -- https://mail.python.org/mailman/listinfo/python-list