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)