Advertisement
AtEchoOff

Patchwork for Dungeon Crawler

Oct 7th, 2024 (edited)
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. def change_level(change):
  2. global level_num, current_level
  3. if change == 1:
  4. if level_num == len(levels) - 1:
  5. levels.append(RandomLevel(player, images, .5, 2 + 2 * level_num))
  6. level_num += 1
  7. current_level = levels[level_num]
  8. player.up_level(current_level)
  9. elif change == -1:
  10. if level_num > 0:
  11. level_num -= 1
  12. current_level = levels[level_num]
  13. player.back_level(current_level)
  14.  
  15. # initializes globals to starting state
  16. def restart():
  17. global player, levels, level_num, current_level
  18. player = Player("images/player/superhero.gif", (16, 16), False)
  19. levels = [LevelCreator(player, images, .5, 2)]
  20. level_num = 0
  21. current_level = levels[level_num]
  22. player.up_level(current_level)
  23.  
  24.  
  25. def main():
  26. global screen, level_num, current_level
  27. if not load_game():
  28. restart()
  29. restart_pressed = False
  30. while True:
  31. clock.tick(60)
  32. for event in pygame.event.get():
  33. # save game and exit
  34. if event.type == QUIT:
  35. save_game()
  36. sys.exit()
  37. if event.type == KEYDOWN:
  38. # confirm/ exit restart if triggered
  39. if restart_pressed:
  40. if event.key == K_RETURN:
  41. restart()
  42. restart_pressed = False
  43. elif event.key == K_ESCAPE:
  44. restart_pressed = False
  45. continue
  46. # screen controls
  47. if event.key == K_f:
  48. screen = pygame.display.set_mode(size, FULLSCREEN)
  49. elif event.key == K_ESCAPE:
  50. screen = pygame.display.set_mode(size)
  51. # player movement controls
  52. elif event.key == K_UP:
  53. player.change_y(-32)
  54. elif event.key == K_DOWN:
  55. player.change_y(32)
  56. elif event.key == K_RIGHT:
  57. player.change_x(32)
  58. elif event.key == K_LEFT:
  59. player.change_x(-32)
  60. elif event.key == K_a:
  61. player.attack()
  62. # initiates restart prompt
  63. elif event.key == K_r:
  64. restart_pressed = True
  65. # debugging related controls
  66. if debug:
  67. # Go up one level
  68. if event.key == K_w:
  69. if level_num == len(levels)-1:
  70. levels.append(RandomLevel(player, images, .5, 2 + 2 * level_num))
  71. level_num += 1
  72. current_level = levels[level_num]
  73. player.up_level(current_level)
  74. # Go down one level
  75. elif event.key == K_s:
  76. if level_num > 0:
  77. level_num -= 1
  78. current_level = levels[level_num]
  79. player.back_level(current_level)
  80. # update the level if not is restart mode
  81. if not restart_pressed:
  82. change_level(current_level.update())
  83. screen.fill(color)
  84. current_level.draw(screen)
  85. pygame.display.flip()
  86.  
  87.  
  88. if __name__ == "__main__":
  89. main()
  90.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement