-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgame.py
More file actions
75 lines (57 loc) · 2.06 KB
/
game.py
File metadata and controls
75 lines (57 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# -*- coding: utf-8 -*-
"""
Created on Thu Dec 31 13:53:51 2015
@author: chaddai
"""
import pygame
import constants
import gameworld
from labyrinthes import fabrique_labyrinthe
from assetsloader import create_assets
##### Initialisation de la librairie pygame #####
pygame.init()
window = pygame.display.set_mode((constants.winwidth, constants.winheight))
pygame.key.set_repeat(200, 200)
##### Initialisation du monde #####
laby = fabrique_labyrinthe(constants.labwidth, constants.labheight)
# Le monde est décrit dans un dictionnaire, la clé "objects" contient un
# dictionnaire de tous les éléments de premier plan (dont le joueur, le PC)
world = {
'laby': laby,
'objects': {},
# initialiser le score à 0 pour tous les bonus possibles
'score': {bonus_name: 0 for bonus_name in constants.bonus_sprites},
'bonus map': None,
'background': None
}
# Création et placement des bonus sur la carte
(bonus_map, bonus) = gameworld.create_bonus(laby, 10)
world['bonus map'] = bonus_map
# On ajoute les bonus dans la liste des objets
world['objects'].update(bonus)
# On positionne le joueur sur une position libre
world['objects']['pc'] = {
'lpos': constants.random_free_position(world['bonus map']),
'sprite': "Character Boy"
}
# Chargement des images ressources dans un dictionnaire qui à
# chaque nom de fichier (sans extension) associe l'image
# correctement redimensionnée
assets = create_assets("images")
# On crée l'arrière-plan et on en profite pour générer les
# "décorations" comme les arbres et les rochers...
(background, decos) = gameworld.create_background(laby, assets)
world['background'] = background
# ...qu'on ajoute alors aux objets d'avant plan dans le monde
world['objects'].update(decos)
##### Boucle principale #####
continuer = True
while continuer:
# On dessine le monde
gameworld.draw_world(window, world, assets)
pygame.display.flip()
# puis on gère les événements
(continuer, inputs) = gameworld.event_handler()
# et on modifie le monde selon les entrées
gameworld.step(world, inputs)
pygame.quit()