Lauren Porter wrote:
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.

The code looks rather "naked" with any sort of documentation.
Do you want to ask us to figure out how it is supposed to work in order to help you? My debugging suggestion is "print, print, print!" so you can follow what your code is doing. I find that the sooner I start doing that, the sooner my debugging session is over. Good luck!

Bill

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

Reply via email to