Add pause screen as transp overlay
This commit is contained in:
parent
9c71bd0312
commit
ca7d32cb3e
3 changed files with 55 additions and 22 deletions
|
@ -13,3 +13,11 @@ deceleration : 1.1
|
|||
|
||||
# Projectile
|
||||
max_fire_rate : 10
|
||||
|
||||
# Controls (not used yet)
|
||||
up : z
|
||||
right : d
|
||||
down : s
|
||||
left : q
|
||||
fire :
|
||||
pause : escape
|
28
main.py
28
main.py
|
@ -4,6 +4,7 @@
|
|||
### Author: Arthur 'Grizzly' Grisel-Davy
|
||||
|
||||
import pygame
|
||||
import yaml
|
||||
|
||||
from models import Game, Player, Carte, Camera, Enemy, Hud
|
||||
|
||||
|
@ -14,7 +15,6 @@ screen_width = 1200
|
|||
screen_height = 800
|
||||
center_screen = (int(screen_width/2),int(screen_height/2))
|
||||
screen = pygame.display.set_mode((screen_width, screen_height))
|
||||
done = False
|
||||
|
||||
|
||||
BACKGROUND=(200,200,200)
|
||||
|
@ -22,9 +22,22 @@ WHITE=(255,255,255)
|
|||
BLUE=(0,0,255)
|
||||
RED=(255,0,0)
|
||||
|
||||
# with open(r'./config.yaml') as file:
|
||||
# data = yaml.load(file,Loader=yaml.FullLoader)
|
||||
# up = pygame.key.key_code(data['up'])
|
||||
# right = pygame.key.key_code(data['right'])
|
||||
# down = pygame.key.key_code(data['down'])
|
||||
# left = pygame.key.key_code(data['left'])
|
||||
# pause = pygame.key.key_code(data['pause'])
|
||||
# print(up,right,down,left,pause)
|
||||
|
||||
|
||||
pause_screen = pygame.Surface((screen_width,screen_height))
|
||||
pause_screen.set_alpha(128)
|
||||
pause_screen.fill((255,255,255))
|
||||
|
||||
|
||||
carte = Carte(n=5)
|
||||
# possible positions: 300,300: 1400,1000: 2700,400, 2800,1600
|
||||
# click = 323
|
||||
start_pos = carte.player_start_pos
|
||||
player = Player('Alice',start_pos,center_screen,pygame.K_z,pygame.K_s,pygame.K_q,pygame.K_d,323,'perso.png','canon.png','projectile1_right.png')
|
||||
camera = Camera(start_pos,screen_width,screen_height,0.3)
|
||||
|
@ -34,6 +47,7 @@ game = Game(carte,player,camera,[],hud)
|
|||
|
||||
clock = pygame.time.Clock()
|
||||
|
||||
done = False
|
||||
while not done:
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
|
@ -42,11 +56,19 @@ while not done:
|
|||
|
||||
keystate = pygame.key.get_pressed() + pygame.mouse.get_pressed()
|
||||
|
||||
if keystate[pygame.K_ESCAPE]:
|
||||
game.pause = not game.pause
|
||||
|
||||
if not game.pause:
|
||||
player.check_keys(keystate,screen_width,screen_height,carte,camera)
|
||||
|
||||
|
||||
screen.fill(BACKGROUND)
|
||||
game.draw(screen)
|
||||
|
||||
if game.pause:
|
||||
screen.blit(pause_screen, (0,0))
|
||||
|
||||
pygame.display.flip()
|
||||
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ with open(r'./config.yaml') as file:
|
|||
|
||||
class Game():
|
||||
def __init__(self,carte,player,camera,enemies,hud):
|
||||
self.pause = False
|
||||
self.carte = carte
|
||||
self.player = player
|
||||
self.camera = camera
|
||||
|
@ -38,6 +39,7 @@ class Game():
|
|||
to_remove = []
|
||||
for k,proj in enumerate(self.player.projectiles):
|
||||
if not proj.is_out(self.carte,self):
|
||||
if not self.pause:
|
||||
proj.move()
|
||||
proj.draw(surface,self.camera)
|
||||
else:
|
||||
|
@ -49,7 +51,7 @@ class Game():
|
|||
for enemy in self.enemies:
|
||||
enemy.draw(surface,self.camera)
|
||||
|
||||
self.player.draw(surface,self.camera)
|
||||
self.player.draw(surface,self.camera,self)
|
||||
self.camera.draw(surface)
|
||||
self.hud.draw(surface)
|
||||
|
||||
|
@ -234,7 +236,7 @@ class Player():
|
|||
self.fire('bullet','asset/projectile')
|
||||
|
||||
|
||||
def draw(self,surface,camera):
|
||||
def draw(self,surface,camera,game):
|
||||
|
||||
#Get offset and compute player position in screen
|
||||
offsetx,offsety = camera.get_offset()
|
||||
|
@ -242,6 +244,7 @@ class Player():
|
|||
posy_screen = self.posy-offsety
|
||||
|
||||
#Calculate canon rotation:
|
||||
if not game.pause:
|
||||
x_mouse, y_mouse = pygame.mouse.get_pos()
|
||||
if x_mouse==posx_screen:
|
||||
x_mouse+=0.1
|
||||
|
|
Loading…
Reference in a new issue