Commented the code in a better way
This commit is contained in:
parent
e7a2d86699
commit
00c6b98355
1 changed files with 65 additions and 30 deletions
95
tests.py
95
tests.py
|
@ -1,33 +1,37 @@
|
|||
import pygame
|
||||
import random
|
||||
|
||||
pygame.init()
|
||||
pygame.font.init()
|
||||
|
||||
win = pygame.display.set_mode((500, 500))
|
||||
pygame.display.set_caption("test")
|
||||
bigFont = pygame.font.SysFont('Impact', 50)
|
||||
smallFont = pygame.font.SysFont('Impact', 35)
|
||||
win = pygame.display.set_mode((500, 500)) # Set the canvas size
|
||||
pygame.display.set_caption("test dino") # Set the title of the screen (useless for a browser game)
|
||||
|
||||
bigFont = pygame.font.SysFont('Impact', 50) # Initiate font for the big 'you lose'
|
||||
smallFont = pygame.font.SysFont('Impact', 35) # Initiate font for the tes=xt telling to press Space
|
||||
|
||||
|
||||
posGround = 405
|
||||
posPlayer = 40
|
||||
posGround = 405 # Y coordinate of the ground
|
||||
posPlayer = 40 # X coordinate the player will stay at
|
||||
|
||||
|
||||
posy = posGround -64
|
||||
posy = posGround -64 # Initiate the posy of the player
|
||||
|
||||
jumpCount = 21
|
||||
walkCount = 0
|
||||
bgCount = 0
|
||||
groundCount =0
|
||||
jump = False
|
||||
jumpCount = 21 # Jumpcount stays at 21, when the player presses Space it goes form - to + 20 (which)
|
||||
walkCount = 0 # Increases steadily for the walk sprites to chain
|
||||
bgCount = 0 # Used to loop the background, WILL NEED TO BE ADJUSTED WITH THE SPRITE
|
||||
groundCount = 0 # Used to loop the ground, WILL NEED TO BE ADJUSTED WITH THE SPRITE
|
||||
jump = False # Is toggled when the player jumps
|
||||
|
||||
|
||||
class Obstacle:
|
||||
class Obstacle: # define all obstacles
|
||||
def __init__(self, position, width):
|
||||
self.position = position
|
||||
self.width = width
|
||||
|
||||
|
||||
# define all obstacles
|
||||
|
||||
obs1 = Obstacle(600, random.randrange(10, 70, 10))
|
||||
obs2 = Obstacle(1000, random.randrange(10, 70, 10))
|
||||
obs3 = Obstacle(1400, random.randrange(10, 70, 10))
|
||||
|
@ -36,33 +40,42 @@ obs5 = Obstacle(2200, random.randrange(10, 70, 10))
|
|||
obs6 = Obstacle(2600, random.randrange(10, 70, 10))
|
||||
|
||||
|
||||
# the function that returns the height as a function of the Jumpcount
|
||||
# (from -20 to 20 as these are the roots of the polynomial)
|
||||
|
||||
def jumpHeight(count):
|
||||
return (-0.02*count*count+8)*20
|
||||
|
||||
|
||||
# Load all the sprites of the guy walking WILL NEED TO BE ADJUSTED WITH THE SPRITE
|
||||
walkSprite = [pygame.image.load('walk1.png'), pygame.image.load('walk2.png'), pygame.image.load('walk3.png'), pygame.image.load('walk4.png'), pygame.image.load('walk5.png'), pygame.image.load('walk6.png')]
|
||||
|
||||
# Load all the sprites of the obstacles WILL NEED TO BE ADJUSTED WITH THE SPRITE
|
||||
obstacleSprite =[pygame.image.load('obs10.png'), pygame.image.load('obs20.png'), pygame.image.load('obs30.png'), pygame.image.load('obs40.png'), pygame.image.load('obs50.png'), pygame.image.load('obs60.png'), pygame.image.load('obs70.png')]
|
||||
|
||||
# Load the background WILL NEED TO BE ADJUSTED WITH THE SPRITE
|
||||
bg = pygame.image.load('bg.jpg')
|
||||
|
||||
# Load the ground WILL NEED TO BE ADJUSTED WITH THE SPRITE
|
||||
ground = pygame.image.load('ground.png')
|
||||
|
||||
|
||||
# Checks to keep the window openned
|
||||
program_Running = True
|
||||
# Checks to keep the game running (if not displays lost screen)
|
||||
game_Running = True
|
||||
|
||||
while program_Running:
|
||||
while game_Running:
|
||||
print('yay')
|
||||
pygame.time.delay(int(1000/60))
|
||||
obstacles = [obs1, obs2, obs3, obs4, obs5, obs6]
|
||||
obstacles = [obs1, obs2, obs3, obs4, obs5, obs6] # Creates a list of obstacles
|
||||
|
||||
# If we hit the quit (close window) ==> Breaks out of both loops
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
game_Running = False
|
||||
program_Running = False
|
||||
|
||||
key = pygame.key.get_pressed()
|
||||
if key[pygame.K_SPACE] and jumpCount == 21:
|
||||
if key[pygame.K_SPACE] and jumpCount == 21: # JumpCount == 21 means the player is on the ground, ie the last jump is over
|
||||
jump = True
|
||||
jumpCount = -20
|
||||
|
||||
|
@ -71,17 +84,21 @@ while program_Running:
|
|||
jumpCount += 1
|
||||
|
||||
for i in range(0, 6):
|
||||
if abs(obstacles[i].position - posPlayer)<obstacles[i].width/2:
|
||||
if posy > posGround -64 -50:
|
||||
# checks if any of the obstacles are at the point where the player is
|
||||
if abs(obstacles[i].position - posPlayer) < obstacles[i].width/2:
|
||||
# checks in that case if the player is high enough not to touch or not
|
||||
if posy > posGround - 64 - 50:
|
||||
game_Running = False
|
||||
|
||||
win.fill((0, 0, 0))
|
||||
win.blit(bg, (0+int(bgCount/3), 0))
|
||||
win.blit(ground, (groundCount, posGround))
|
||||
win.blit(walkSprite[(walkCount % 18)//3], (posPlayer, posy))
|
||||
win.fill((0, 0, 0)) # Cleans the window
|
||||
win.blit(bg, (0+int(bgCount/3), 0)) # Displays the Bg (with a 1/3 ratio compared to the 1/frame incrementation)
|
||||
win.blit(ground, (groundCount, posGround)) # Displays the ground WILL NEED TO BE ADJUSTED WITH THE SPRITE AND TO BE LOOPED
|
||||
win.blit(walkSprite[(walkCount % 18)//3], (posPlayer, posy)) # Displays the caracter WILL NEED TO BE ADJUSTED WITH THE SPRITE
|
||||
|
||||
for i in range(0, 6):
|
||||
if obstacles[i].position < 500:
|
||||
for i in range(0, 6): # Checks across every Obstacle
|
||||
if obstacles[i].position < 500: # if it is in the FOV
|
||||
|
||||
# Blits the corresponding image (w/ respect to width)
|
||||
if obstacles[i].width == 10:
|
||||
win.blit(obstacleSprite[0], (obstacles[i].position, posGround-50))
|
||||
elif obstacles[i].width == 20:
|
||||
|
@ -96,32 +113,49 @@ while program_Running:
|
|||
win.blit(obstacleSprite[5], (obstacles[i].position, posGround-50))
|
||||
elif obstacles[i].width == 70:
|
||||
win.blit(obstacleSprite[6], (obstacles[i].position, posGround-50))
|
||||
|
||||
# Moves the obstacle 5px left
|
||||
obstacles[i].position -= 5
|
||||
|
||||
|
||||
# Checks if an obstacle is out of the FOV in the negatives (farther away from 0 that its width)
|
||||
if obstacles[i].position < -1 * obstacles[i].width:
|
||||
# Sets a random width for the obstacle
|
||||
obstacles[i].width = random.randrange(10, 70, 10)
|
||||
# Tps it to 2400
|
||||
obstacles[i].position = 2400
|
||||
print(i, ": position: ", obstacles[i].position)
|
||||
# Debuguer print(i, ": position: ", obstacles[i].position)
|
||||
|
||||
# Update
|
||||
pygame.display.update()
|
||||
|
||||
walkCount += 1
|
||||
groundCount -= 5
|
||||
walkCount += 1 # Walks one step
|
||||
groundCount -= 5 # the ground's moving fast
|
||||
|
||||
# <!> TEMPORARY SOLUTION : TO BE FIXED
|
||||
if groundCount <= -641:
|
||||
groundCount = 0
|
||||
|
||||
# THe two texts when you lose
|
||||
lostText = bigFont.render('YOU LOST', False, (255, 0, 0))
|
||||
lostText2 = smallFont.render("Press Spacebar to replay", False, (255, 0, 0))
|
||||
|
||||
# Clean the window
|
||||
win.fill((0, 0, 0))
|
||||
|
||||
# Print both texts
|
||||
win.blit(lostText, (150, 150))
|
||||
win.blit(lostText2, (75, 250))
|
||||
|
||||
# Update
|
||||
pygame.display.update()
|
||||
|
||||
# Check to quit (the other check is within hte game loop)
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
program_Running = False
|
||||
|
||||
|
||||
# Checks for another game:
|
||||
key = pygame.key.get_pressed()
|
||||
if key[pygame.K_SPACE]:
|
||||
|
||||
|
@ -145,3 +179,4 @@ while program_Running:
|
|||
obs6 = Obstacle(2600, random.randrange(10, 70, 10))
|
||||
|
||||
|
||||
pygame.quit()
|
Loading…
Reference in a new issue