Processing Game Help

Bill BILL_NOSPAM at Noway.net
Sun Dec 10 23:36:14 EST 2017


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)
>




More information about the Python-list mailing list