Compare commits

..

No commits in common. "a0e8d6a6bac939b9f2df8b3881347a0e7ec42bf7" and "f7894f204031936a75342a9e5c5a9e604b643ff4" have entirely different histories.

4 changed files with 14 additions and 90 deletions

View file

@ -2,9 +2,6 @@ from render import load_sprite # this makes it so our function for rendering spr
import pygame
tickd = 0
dialognum = 0
playerx,playery = 596, 245
oldpx, oldpy = 596, 245
playerXc, playerYc = 0,0
DIALOGTEXT = "UNDEFINED"
def level1(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, mouse, click, big_text, level, tick, slightfont, pygamemixer): # the function for our first level, ignore the unused variables here, you can use them when you edit it
global tickd
@ -16,7 +13,7 @@ def level1(screen, sheet, screen_width, screen_height, lastclickpos, basicfont,
screen.blit(overlay, (0, 0))
elif tickd > 450:
tickd = 0
mainmenu_text = slightfont.render("THE LARVAE", True, (210, 210, 210))
mainmenu_text = slightfont.render("THE DESTROYER OF CITIES", True, (210, 210, 210))
playb_collision = pygame.Rect(315, 200, 285, 105)
exitb_collision = pygame.Rect(315, 350, 285, 105)
if playb_collision.collidepoint(mouse.get_pos()):
@ -41,10 +38,10 @@ def level1(screen, sheet, screen_width, screen_height, lastclickpos, basicfont,
screen.blit(load_sprite(sheet, 57, 0, 19, 7, 285, 105), (315, 350))
exit_text = basicfont.render("Exit", True, (255,255,255))
screen.blit(exit_text, (414, 380))
screen.blit(mainmenu_text, (255, 65))
screen.blit(mainmenu_text, (45, 65))
return level # this returns the change we made to the level so that it updates in main.py
def level2(blip, screen, sheet, screen_width, screen_height, lastclickpos, basicfont, mouse, click, big_text, level, tick, slightfont, pygamemixer): # the function for our first level, ignore the unused variables here, you can use them when you edit it
global tickd, dialognum, DIALOGTEXT, playerx, playery
global tickd, dialognum, DIALOGTEXT
if dialognum not in [9, 11]:
tickd += 1
else:
@ -109,15 +106,14 @@ def level2(blip, screen, sheet, screen_width, screen_height, lastclickpos, basic
if dialognum == 12:
DIALOGTEXT = "I'm the parasite..."
screen.blit(load_sprite(sheet, 0, 37, 57,36, 912, 576), (0,0))
screen.blit(load_sprite(sheet,57,40,6,28, 60, 280), (playerx, playery))
screen.blit(load_sprite(sheet,57,40,6,28, 60, 280), (600, 290))
dialog_square = pygame.surface.Surface((800, 68), pygame.SRCALPHA)
dialog_square.fill((0, 0, 0))
screen.blit(dialog_square, (56, 500))
if dialognum == 13:
DIALOGTEXT = ""
tickd = 0
screen.blit(load_sprite(sheet, 0, 37, 57,36, 912, 576), (0,0))
screen.blit(load_sprite(sheet,57,40,6,28, 60, 280), (600, 290))
screen.blit(load_sprite(sheet,57,15,8,25, 80, 250), (660, 290))
level = 3
dialog = basicfont.render(DIALOGTEXT, True, transparency)
if len(DIALOGTEXT) < 16:
@ -137,35 +133,3 @@ def level2(blip, screen, sheet, screen_width, screen_height, lastclickpos, basic
pygame.mixer.Sound.play(blip)
tickd = 60
return level # returns the current level set
def level3(blip, screen, sheet, screen_width, screen_height, lastclickpos, basicfont, mouse, click, big_text, level, tick, slightfont, pygamemixer): # the function for our first level, ignore the unused variables here, you can use them when you edit it
global tickd, playerx, playery
tickd += 1
screen.blit(load_sprite(sheet, 0, 37, 57, 36, 912, 576), (0, 0))
screen.blit(load_sprite(sheet,57,40,6,28, 60, 280), (playerx, playery))
square = pygame.surface.Surface((812, 476), pygame.SRCALPHA)
square.fill((0, 0, 0))
if tickd < 255:
transparency = (tickd, tickd, tickd)
else:
transparency = (255,255,255)
dialog1 = basicfont.render("Controls:", True, transparency)
dialog2 = basicfont.render("<WASD> to move around", True, transparency)
dialog3 = basicfont.render("<E> to interact when prompted", True, transparency)
dialog4 = basicfont.render("<H> to hide yourself (the parasite)", True, transparency)
dialog5 = basicfont.render("<Escape> to pause", True, transparency)
dialog6 = basicfont.render("Press <Space> to continue.", True, transparency)
square.blit(dialog1, (15, 15))
square.blit(dialog2, (15, 65))
square.blit(dialog3, (15, 115))
square.blit(dialog4, (15, 165))
square.blit(dialog5, (15, 215))
square.blit(dialog6, (15, 426))
screen.blit(square, (50, 50))
return level
def level4(blip, screen, sheet, screen_width, screen_height, lastclickpos, basicfont, mouse, click, big_text, level, tick, slightfont, pygamemixer): # the function for our first level, ignore the unused variables here, you can use them when you edit it
global tickd,playerx,playery, playerXc, playerYc
screen.blit(load_sprite(sheet, 0, 37, 57, 36, 912, 576), (0, 0))
screen.blit(load_sprite(sheet,57,40,6,28, 60, 280), (playerx, playery))
return level

56
main.py
View file

@ -13,7 +13,7 @@ def main(fps=window_fps): # the main function
screen_width = 912 # the screen width
screen_height = 576 # the screen height
# THE SCREEN IS 19:12 RATIO
title = "The Larvae" # the title of the window obviously
title = "The Destroyer of Cities" # the title of the window obviously
lastclickpos = [0, 0] # last position that was clicked, this changes every time you click somewhere on the game window
screen = pygame.display.set_mode((screen_width, screen_height)) # this initializes the display with the screen_width and screen_height variables
pygame.display.set_caption(title) # this actually sets the title of the window from the title variable
@ -28,31 +28,13 @@ def main(fps=window_fps): # the main function
level = 1 # the level variable, this also gets changed during the "gameplay"
running = True # this variable starts the game loop
while running: # game loop
levels.oldpx, levels.oldpy = levels.playerx, levels.playery
screen.fill((0, 0, 0)) # fills the screen with black, so the sprites loaded previously dont overlap and this clears the last frame every "tick"
for event in pygame.event.get(): # this checks for stuff like key presses and mouse clicks
if event.type == pygame.QUIT: # what happens when you click the X button on the window
running = False # poof
if event.type == pygame.KEYDOWN: # what happens when you press down a key
if event.key == pygame.K_SLASH:
levels.dialognum = 13
pygame.mixer.music.stop()
level = 2
if event.key == pygame.K_SPACE:
if level == 3:
tickd = 0
level = 4
if level > 3:
if event.key == pygame.K_w:
levels.playerYc = -3
if event.key == pygame.K_a:
levels.playerXc = -3
if event.key == pygame.K_s:
levels.playerYc = +3
if event.key == pygame.K_d:
levels.playerXc = +3
if event.key == pygame.K_ESCAPE:
levels.dialognum += 1
if event.key == pygame.K_h:
if levels.dialognum == 9:
levels.tickd = 0
@ -61,16 +43,6 @@ def main(fps=window_fps): # the main function
if levels.dialognum == 11:
levels.tickd = 0
levels.dialognum = 12
if event.type == pygame.KEYUP:
if level > 3:
if event.key == pygame.K_w:
playerYc = 0
if event.key == pygame.K_a:
playerXc = 0
if event.key == pygame.K_s:
playerYc = 0
if event.key == pygame.K_d:
playerXc = 0
if event.type == pygame.MOUSEBUTTONDOWN: # what happens when you press down a mouse button
click = True # sets the click variable to True so level function in levels.py can see
print(pygame.mouse.get_pos()) # prints out where the mouse is during the click for debugging purposes
@ -83,24 +55,12 @@ def main(fps=window_fps): # the main function
level = levels.level1(screen, sheet, screen_width, screen_height, lastclickpos, basicfont, pygame.mouse, click, bigfont, level, tick, slightly_smaller_than_bigfont, pygame.mixer.music) # runs the level1 function from levels.py
if level == 2:
level = levels.level2(blip, screen, sheet, screen_width, screen_height, lastclickpos, basicfont, pygame.mouse, click, bigfont, level, tick, slightly_smaller_than_bigfont, pygame.mixer.music)
if level == 3:
level = levels.level3(blip, screen, sheet, screen_width, screen_height, lastclickpos, basicfont, pygame.mouse, click, bigfont, level, tick, slightly_smaller_than_bigfont, pygame.mixer.music)
if level == 4:
level = levels.level4(blip, screen, sheet, screen_width, screen_height, lastclickpos, basicfont, pygame.mouse, click, bigfont, level, tick, slightly_smaller_than_bigfont, pygame.mixer.music)
# THE REASON WE CALL IT LIKE THIS INSTEAD OF NORMALLY IS SO WE CAN CHANGE THE LEVEL VARIABLE
elif level == 2: # what happens when the level variable is equal to 2 ofc
level = levels.level2(screen, sheet, lastclickpos, basicfont, pygame.mouse, click, level) # runs the level2 function from levels.py
fps_text = sysfont.render(str(int(clock.get_fps())), True, (0, 255, 0)) # defines a thing that renders your fps in the top left corner
#screen.blit(fps_text, (5, 5)) # this actually renders "ftp_text" on the screen at the position (5, 5) which is the top left corner
if 180 > levels.playerx:
levels.playerx = 180
if 615 < levels.playerx:
levels.playerx = 615
if 165 > levels.playery:
levels.playery = 165
if 275 < levels.playery:
levels.playery = 275
levels.playerx += levels.playerXc
levels.playery += levels.playerYc
screen.blit(fps_text, (5, 5)) # this actually renders "ftp_text" on the screen at the position (5, 5) which is the top left corner
pygame.display.flip() # this updates the display so it displays all the new stuff we added
clock.tick(fps) # this makes sure the game loop runs at the fps we set it to before
pygame.quit() #this quits our game when the game loop somehow ends, for example by pressing escape or the X button on the window

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Before After
Before After

Binary file not shown.