Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def load_save():
- f = open('data/save_file.txt','r')
- dat = f.read()
- f.close()
- dat = dat.split('\n')
- while len(dat) < 6:
- dat.append('0000000000')
- return dat
- def save(dat):
- s = ''
- for line in dat:
- s += line + '\n'
- s = s[:-1]
- f = open('data/save_file.txt','w')
- f.write(s)
- f.close()
- def get_progress(dat):
- world = 1
- for line in dat:
- if '0' not in line:
- world += 1
- else:
- break
- return world
- def level_select():
- global right_key, left_key, up_key, down_key, select_key
- bg = menu_background()
- tips = ['Jump Off The Sides of a Wall to Prevent Falling',
- 'Use WASD or Arrow Key to Move',
- 'Use Space-bar or Enter Key to Shoot',
- 'Collect Hidden Gems to Gain a Higher Score',
- 'Avoid Enemy Projectiles by Jumping']
- tip = random.choice(tips)
- #images
- arrow_img = load_img('arrow')
- level_line_img = load_img('line')
- lock_img = load_img('lock')
- #save file
- save_dat = load_save()
- level_progress = get_progress(save_dat)
- #other stuff
- selected_level = None
- level_target = 0
- level_target = 1
- arrow_timer = 0
- start_level = False
- level_scroll = 300
- white_bar_width = 200
- level_img_fade = [900,'u',1]
- level_count = 2 #Extend to X amount for more levels
- level_amount = 2 #Extend to X amount for more levels
- level_images = []
- for i in range(level_amount):
- level_images.append(load_img('levels/' + str(i+1)))
- #loop
- in_play = True
- while in_play:
- display.fill((0,0,0))
- bg.render(display)
- text_to_show = 'Level ' + str(level_target)
- if selected_level != None:
- text_to_show += '-' + str(level_target+1)
- text.show_text(text_to_show,198-int(get_text_width(text_to_show,1)/2),50,1,9999,font,display)
- arrow_timer += 1
- if arrow_timer == 60:
- arrow_timer = 0
- if selected_level == None:
- display.blit(arrow_img,(195,115+int(arrow_timer/45)))
- text.show_text('Tip: ' + tip,5,240,1,9999,font,display)
- #world stuff
- world_surf = pygame.Surface((400,9))
- for i in range(level_amount-1):
- world_surf.blit(level_line_img,(round(level_scroll,0)+i*50,0))
- world_surf_base = pygame.Surface((400,9))
- world_surf_base.fill((188,183,197))
- pygame.draw.rect(world_surf_base,(248,248,248),pygame.Rect(0,0,white_bar_width,9))
- world_surf.set_colorkey((248,248,248))
- world_surf_base.blit(world_surf,(0,0))
- world_surf_base.set_colorkey((0,0,0))
- display.blit(world_surf_base,(0,100))
- change_rate = ((195-(level_target-1)*50)-level_scroll)/5
- level_scroll += change_rate
- if abs(change_rate) > 1.2:
- white_bar_width += change_rate
- elif white_bar_width < 204:
- white_bar_width += 4
- if white_bar_width > 204:
- white_bar_width = 204
- elif white_bar_width > 204:
- white_bar_width -= 4
- if white_bar_width < 204:
- white_bar_width = 204
- world_img = level_images[level_img_fade[2]-1].copy()
- world_img.set_alpha(level_img_fade[0])
- if level_img_fade[1] == 'u':
- level_img_fade[0] += 25
- if level_img_fade[0] > 255:
- level_img_fade[0] = 255
- else:
- level_img_fade[0] -= 25
- if level_img_fade[0] < 0:
- level_img_fade[0] = 0
- level_img_fade[1] = 'u'
- level_img_fade[2] = level_target
- display.blit(world_img,(186,66))
- if level_target > level_progress:
- display.blit(lock_img,(194,70))
- if start_level == False:
- for event in pygame.event.get():
- if event.type == QUIT:
- pygame.quit()
- sys.exit()
- if event.type == KEYDOWN:
- if event.key == right_key:
- if selected_level == None:
- level_target += 1
- if level_target > level_count:
- level_target = 1
- level_img_fade[1] = 'd'
- else:
- level_target += 1
- if level_target > levels[selected_level]-1:
- level_target = 0
- if event.key == left_key:
- if selected_level == None:
- level_target -= 1
- if level_target <= 0:
- level_target = level_count
- level_img_fade[1] = 'd'
- else:
- level_target -= 1
- if level_target < 0:
- level_target = levels[selected_level]-1
- if (event.key == down_key) or (event.key == select_key):
- if selected_level == None:
- if event.key == up_key:
- if start_level == False:
- selected_level = None
- if event.key == K_ESCAPE:
- in_play = False
- save_dat = load_save()
- level_progress = get_progress(save_dat)
- screen.blit(pygame.transform.scale(display,(WINDOWWIDTH,WINDOWHEIGHT)),(0,0))
- pygame.display.update()
- fps.tick(60)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement