Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1# Roll 'n' Jump 

2# Written in 2020, 2021 by Samuel Arsac, Hugo Buscemi, 

3# Matteo Chencerel, Rida Lali 

4# To the extent possible under law, the author(s) have dedicated all 

5# copyright and related and neighboring rights to this software to the 

6# public domain worldwide. This software is distributed without any warranty. 

7# You should have received a copy of the CC0 Public Domain Dedication along 

8# with this software. If not, see 

9# <http://creativecommons.org/publicdomain/zero/1.0/>. 

10 

11"""Stocke des variables partagées entre les différents fichiers.""" 

12import os 

13from enum import Enum 

14 

15# Screen configurations 

16SCREEN_WIDTH = 1280 

17"""Référence de la largeur de l'écran utilisée pour créer le jeu.""" 

18 

19SCREEN_HEIGHT = 720 

20"""Référence de la hauteur de l'écran utilisée pour créer le jeu.""" 

21 

22FPS = 60 

23"""Objectif d'images par seconde.""" 

24 

25SRC = os.path.join(os.path.dirname(__file__), '..', 'rollnjump') 

26"""Chemin vers le dossier src.""" 

27CONFDIR = os.path.join(os.path.dirname(__file__), '..') 

28"""Chemein vers le dossier contenant les configurations.""" 

29ASSETS = os.path.join(os.path.dirname(__file__), '..', 'rollnjump/assets') 

30"""Chemin vers le dossier assets.""" 

31UI = os.path.join(ASSETS, 'img', 'ui') 

32"""Chemin vers le dossier des images de l'interface.""" 

33MUSIC = os.path.join(ASSETS, 'music', 'monozik.ogg') 

34"""Chemin vers la musique.""" 

35SCORES = os.path.join(CONFDIR, 'score.txt') 

36"""Chemin vers le fichier contenant les scores.""" 

37MODULES = os.path.join(os.path.dirname(__file__), '..', 'rollnjump', 'modules') 

38"""Chemin vers le dossier contenant les modules.""" 

39 

40HIGHSCORES_FONT_SIZE = 36 

41"""Taille des fontes pour les meilleurs scores.""" 

42SCORE_FONT_SIZE = 25 

43"""Taille des fontes pour les scores.""" 

44RESULT_FONT_SIZE = 50 

45"""Taille des fontes pour le résultat.""" 

46INPUT_FONT_SIZE = 35 

47"""Taille des fontes pour les entrées.""" 

48TEXT_FONT_SIZE = 25 

49"""Taille des fontes pour le texte.""" 

50 

51INITIAL_SPEED = 5 

52"""Vitesse initiale de défilement du sol.""" 

53SPEED = INITIAL_SPEED 

54"""Vitesse de défilement du monde.""" 

55ACC = 0.5 

56"""Accélération de SPEED""" 

57 

58V_JMP = 15 

59"""Vitesse initiale lors d'un saut.""" 

60G = 0.8 

61"""Accélération due à la gravité.""" 

62 

63NB_PLAYERS_MAX = 4 

64"""Nombre maximal de joueurs.""" 

65NB_PLAYERS = 1 

66"""Nombre de joueurs.""" 

67 

68# Capture des touches de saut 

69CAPT = False 

70"""En cours de capture de touches.""" 

71CAPT_PLYR = 0 

72"""Numéro du joueur en cours pour changer sa commande.""" 

73 

74NEW_ITEM_TIME = 5 

75"""Le nombre de secondes avant le prochain objet.""" 

76 

77ITEM_PROBA_MIN = 3 

78"""Le minimum de NEW_ITEM_TIME lorsque tiré aléatoirement.""" 

79ITEM_PROBA_MAX = 7 

80"""Le maximum de NEW_ITEM_TIME lorsque tiré aléatoirement.""" 

81 

82ITEM_TIME = {'fast': 40, 'slow': 40, 'little': 200, 'big': 200, 'delay': 5} 

83"""Dictionnaire avec la durée des effets des items (en nbre de frames).""" 

84 

85V_ITEM = {'fast': 4, 'slow': -4} 

86"""Vitesse à laquelle on accélère ou ralentit.""" 

87 

88SIZE_FACTOR = {'little': 1, 'normal': 3, 'big': 8} 

89"""Facteurs de redimensionnement du joueur.""" 

90SIZE = {'little': (0, 0), 'normal': (0, 0), 'big': (0, 0)} 

91"""Les différentes dimensions du joueur (normal, big, little).""" 

92 

93FLAG_MUSIC = True 

94"""Drapeau indiquant s'il y a de la musique ou non""" 

95 

96FLAG_ITEM = False 

97""" 

98Drapeau indiquant un objet à l'écran ou un effet d'objet. 

99A pour effet d'empêcher l'apparition d'objets. 

100""" 

101 

102# Couleurs 

103BLACK = (0, 0, 0) 

104"""Noir.""" 

105GREY = (240, 240, 240) 

106"""Gris.""" 

107WHITE = (255, 255, 255) 

108"""Blanc.""" 

109BlueSky = (0, 170, 251) 

110"""Couleur du ciel.""" 

111IDLE = (170, 170, 170) 

112"""Couleur d'un bouton inactif.""" 

113HOVER = (100, 100, 100) 

114"""Couleur d'un bouton sur lequel le pointeur est situé.""" 

115 

116COLORS = ["green", "purple", "red", "white"] 

117"""Couleurs des joueurs.""" 

118 

119SECONDS = 0 

120"""Compteur de secondes pour le score.""" 

121FRAMES = 0 

122"""Compteur des images pour les secondes""" 

123 

124 

125# États du jeu 

126class State(Enum): 

127 """Type énuméré pour l'état du jeu.""" 

128 

129 languages = 0 

130 menu = 1 

131 ingame = 2 

132 gameover = 3 

133 gameover_multi = 3.5 

134 highscore = 4 

135 setup = 5 

136 langchange = 6 

137 keyset = 7 

138 multiplayer_set = 8 

139 credits = 9 

140 

141 

142STATE = State.menu 

143"""État du jeu.""" 

144 

145LANG = "NONE" 

146"""Langue du jeu.""" 

147COLORSTRAD = { 

148 "fr": ["vert", "violet", "rouge", "blanc"], 

149 "en": ["green", "purple", "red", "white"] 

150} 

151"""Dictionnaire pour la traduction des couleurs.""" 

152 

153DISPLAYSURF = None 

154"""Surface sur laquelle le jeu est créé.""" 

155WINDOWSURF = None 

156"""Surface sur laquelle le jeu sera affiché."""