1 # -*- coding: utf-8 -*-
4 bandes arc-en-ciel représentant un clavier.
10 # TODO : positionner cette constance en fonction de la résolution d'affichage
13 class _PlayingScreenBase(object) :
14 def __init__(self
, distinctNotes
=[]) :
16 distinctNotes : notes disctinctes présentes dans la chanson
17 triées du plus grave au plus aigu.
19 self
.distinctNotes
= distinctNotes
20 self
.keyboardRects
= []
25 def _initRects(self
) :
26 """ création des espaces réservés pour
27 afficher les colonnes.
29 ambitus
= self
.distinctNotes
[-1].midi
- self
.distinctNotes
[0].midi
35 screen
= pygame
.display
.get_surface()
37 # taille de la zone d'affichage utile (bordure autour)
38 dispWidth
= screen
.get_width() - 2 * BORDER
39 dispHeight
= screen
.get_height() - 2 * BORDER
41 columnWidth
= int(round(float(dispWidth
) / keyboardLength
))
44 for i
in range(keyboardLength
) :
45 upperLeftCorner
= (i
*columnWidth
+ BORDER
, BORDER
)
46 rect
= pygame
.Rect(upperLeftCorner
, (columnWidth
, dispHeight
))
49 self
.keyboardRects
= rects
52 def drawColumns(self
) :
55 def highLightColumn(self
) :
59 class SongPlayingScreen(_PlayingScreenBase
) :
61 def __init__(self
, song
) :
62 super(SongPlayingScreen
, self
).__init
__(song
.)
67 class Column(pygame
.sprite
.Sprite
) :
69 def __init__(self
, color
) :