From: pin Date: Thu, 25 Mar 2010 12:04:27 +0000 (+0000) Subject: gardes fous pour ne pas dépasser les bordures. X-Git-Url: https://scm.cri.ensmp.fr/git/minwii.git/commitdiff_plain/5f3d5fdc66dc67db40c5021a44380283bf97c9f7?ds=inline;hp=570d6a4559218a337ea8e49649a9c4303d9db214 gardes fous pour ne pas dépasser les bordures. git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@118 fe552daf-6dbe-4428-90eb-1537e0879342 --- diff --git a/src/app/widgets/column.py b/src/app/widgets/column.py index 3d8b986..4e8678b 100755 --- a/src/app/widgets/column.py +++ b/src/app/widgets/column.py @@ -24,7 +24,7 @@ from config import FONT_COLOR class Column(pygame.sprite.DirtySprite) : - def __init__(self, group, hue, rect, tone, atBorder) : + def __init__(self, group, hue, rect, tone) : pygame.sprite.DirtySprite.__init__(self, group) self.state = False @@ -51,11 +51,6 @@ class Column(pygame.sprite.DirtySprite) : onLeft = rect.centerx - onWidth / 2 rectOn = pygame.Rect((onLeft, 0), (onWidth, rect.height)) - - self.atBorder = atBorder - if self.atBorder : - setattr(rectOn, self.atBorder, getattr(rect, self.atBorder)) - self.surOn = gradients.vertical(rectOn.size, topRgba, bottomRgba) w, h = rectOn.w, rectOn.h toneRect = pygame.Rect(((w - tw) / 2, h - th), (tw, th)) @@ -83,9 +78,13 @@ class Column(pygame.sprite.DirtySprite) : if sw > self.rectOn.w : sur = pygame.transform.scale(sur, (sw, h)) rect = rect.inflate(sw - w, 0) - if self.atBorder : - setattr(rect, self.atBorder, getattr(self.rectOn, self.atBorder)) w = sw + + screenWidth = group.dispWidth + if rect.left < 0 : + rect.left = 0 + elif rect.right > screenWidth : + rect.right = screenWidth sylRect = pygame.Rect(((w - sw) / 2, (h - sh) / 2), (sw, sh)) sur.blit(renderedSyl, sylRect) diff --git a/src/app/widgets/playingscreen.py b/src/app/widgets/playingscreen.py index 2635373..4638267 100755 --- a/src/app/widgets/playingscreen.py +++ b/src/app/widgets/playingscreen.py @@ -57,8 +57,8 @@ class _PlayingScreenBase(pygame.sprite.LayeredDirty, EventHandlerMixin) : screen = pygame.display.get_surface() # taille de la zone d'affichage utile (bordure autour) - dispWidth = screen.get_width() - 2 * BORDER - dispHeight = screen.get_height() - 2 * BORDER + self.dispWidth = dispWidth = screen.get_width() - 2 * BORDER + self.dispHeight = dispHeight = screen.get_height() - 2 * BORDER columnWidth = int(round(float(dispWidth) / self.keyboardLength)) @@ -76,12 +76,7 @@ class _PlayingScreenBase(pygame.sprite.LayeredDirty, EventHandlerMixin) : for i, rect in enumerate(self.keyboardRects) : hue = FIRST_HUE - hueStep * i tone = self.distinctNotes[i] - atBorder = False - if i == 0 : - atBorder = 'left' - elif i == self.keyboardLength -1 : - atBorder = 'right' - c = Column(self, hue, rect, tone, atBorder) + c = Column(self, hue, rect, tone) self.add(c, layer=BACKGROUND_LAYER) self.columns[tone.midi] = c