Skip to content

Commit

Permalink
improvements to collision and pace increment
Browse files Browse the repository at this point in the history
  • Loading branch information
1024Adam committed Jul 5, 2022
1 parent 6e21481 commit f851f18
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 22 deletions.
2 changes: 1 addition & 1 deletion infinite_maze/Clock.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ def getMillis(self):
return (self.millis)

def getSeconds(self):
return (self.millis / 60)
return int((self.millis / 1000) % 60)
17 changes: 9 additions & 8 deletions infinite_maze/Game.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,10 @@ def __init__(self):
self.pace = 0
self.score = 0
self.scoreIncrement = 1
self.paused = 0
self.over = 0
self.shutdown = 0

self.paused = False
self.over = False
self.shutdown = False

self.clock = Clock()

Expand All @@ -50,7 +51,7 @@ def updateScreen(self, player, lines):
currClock = self.clock.getSeconds()

# Update Pace
if (self.clock.getMillis() > 1000 and currClock % 30 == 0 and currClock != prevClock):
if (self.clock.getMillis() > 10000 and currClock % 30 == 0 and currClock != prevClock):
self.pace += 0.1

# Print Border
Expand Down Expand Up @@ -83,7 +84,7 @@ def printEndDisplay(self):
pygame.display.flip()

def end(self):
self.over = 1
self.over = True

def cleanup(self):
pygame.quit()
Expand All @@ -92,15 +93,15 @@ def isActive(self):
return (not self.over)

def quit(self):
self.shutdown = 1
self.shutdown = True

def isPlaying(self):
return (not self.shutdown)

def reset(self):
self.pace = 0
self.score = 0
self.over = 0
self.over = False

self.clock.reset()

Expand All @@ -120,7 +121,7 @@ def incrementScore(self):
self.score += self.scoreIncrement

def decrementScore(self):
self.score -= self.scoreIncrement
self.score -= self.scoreIncrement if self.score > 0 else 0

def setScore(self, newScore):
self.score = newScore
Expand Down
52 changes: 39 additions & 13 deletions infinite_maze/infinite_maze.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def maze():
player.getX() + player.getWidth() + player.getSpeed() >= line.getXStart() and
(
(player.getY() >= line.getYStart() and player.getY() <= line.getYEnd()) or
(player.getY() + player.getHeight() >= line.getYStart() and player.getY() + player.getHeight() < line.getYEnd())
(player.getY() + player.getHeight() >= line.getYStart() and player.getY() + player.getHeight() <= line.getYEnd())
)
)
if (not blocked):
Expand All @@ -63,32 +63,58 @@ def maze():
player.getX() - player.getSpeed() <= line.getXEnd() and
(
(player.getY() >= line.getYStart() and player.getY() <= line.getYEnd()) or
(player.getY() + player.getHeight() >= line.getYStart() and player.getY() + player.getHeight() < line.getYEnd())
(player.getY() + player.getHeight() >= line.getYStart() and player.getY() + player.getHeight() <= line.getYEnd())
)
)
if (not blocked):
player.moveX(-player.getSpeed())
game.decrementScore()
if (keys[pygame.K_DOWN] or keys[pygame.K_s]):
blocked = False
#for line in lines:
# blocked = blocked or ((player.getY() + 5 + player.getSpeed() >= line.getYStart()) and (player.getY() <= line.getYStart()) and (player.getX() + 5 > line.getXStart()) and (player.getX() - 5 < line.getXStart()))
# blocked = blocked or ((player.getY() + 5 + player.getSpeed() >= line.getYStart()) and (player.getY() <= line.getYStart()) and (player.getX() >= line.getXStart()) and (player.getX() <= line.getXEnd()))
for line in lines:
if line.getIsHorizontal():
blocked = blocked or (
player.getY() + player.getHeight() <= line.getYStart() and
player.getY() + player.getHeight() + player.getSpeed() >= line.getYStart() and
(
(player.getX() >= line.getXStart() and player.getX() <= line.getXEnd()) or
(player.getX() + player.getWidth() >= line.getXStart() and player.getX() + player.getWidth() <= line.getXEnd())
)
)
else: # vertical line
blocked = blocked or (
player.getX() <= line.getXStart() and
player.getX() + player.getWidth() >= line.getXStart() and
player.getY() + player.getHeight() + player.getSpeed() == line.getYStart()
)
if (not blocked):
player.moveY(player.getSpeed())
elif (keys[pygame.K_UP] or keys[pygame.K_w]):
blocked = False
#for line in lines:
# blocked = blocked or ((player.getY() - player.getSpeed() <= line.getYEnd()) and (player.getY() >= line.getYEnd()) and (player.getX() + 5 > line.getXStart()) and (player.getX() - 5 < line.getXStart()))
# blocked = blocked or ((player.getY() - 5 - player.getSpeed() <= line.getYEnd()) and (player.getY() >= line.getYEnd()) and (player.getX() >= line.getXStart()) and (player.getX() <= line.getXEnd()))
for line in lines:
if line.getIsHorizontal():
blocked = blocked or (
player.getY() >= line.getYStart() and
player.getY() - player.getSpeed() <= line.getYStart() and
(
(player.getX() >= line.getXStart() and player.getX() <= line.getXEnd()) or
(player.getX() + player.getWidth() >= line.getXStart() and player.getX() + player.getWidth() <= line.getXEnd())
)
)
else: # vertical line
blocked = blocked or (
player.getX() <= line.getXStart() and
player.getX() + player.getWidth() >= line.getXStart() and
player.getY() - player.getSpeed() == line.getYEnd()
)
if (not blocked):
player.moveY(-player.getSpeed())

# Process game pace adjustments
#player.setX(player.getX() - game.getPace())
#for line in lines:
# line.setXStart(line.getXStart() - game.getPace())
# line.setXEnd(line.getXEnd() - game.getPace())
player.setX(player.getX() - game.getPace())
for line in lines:
line.setXStart(line.getXStart() - game.getPace())
line.setXEnd(line.getXEnd() - game.getPace())

# Position Adjustments (to prevent screen overflow)
if (player.getX() < game.getXMin()):
Expand All @@ -106,7 +132,7 @@ def maze():
for line in lines:
start = line.getXStart()
end = line.getXEnd()
if (start < 0):
if (start < 80):
line.setXStart(xMax)
if (start == end):
line.setXEnd(xMax)
Expand Down

0 comments on commit f851f18

Please sign in to comment.