def keyPressed(self, key, unicode): c = self.engine.input.controls.getMapping(key) if c == Player.CANCEL: self.engine.view.pushLayer(self.menu) elif key == pygame.K_PAGEDOWN and self.song: d = self.song.difficulty v = difficulties.values() self.song.difficulty = v[(v.index(d) + 1) % len(v)] elif key == pygame.K_PAGEUP and self.song: d = self.song.difficulty v = difficulties.values() self.song.difficulty = v[(v.index(d) - 1) % len(v)] elif key == pygame.K_DELETE and self.song: # gather up all events that intersect the cursor and delete the ones on the selected string t1 = self.snapPos t2 = self.snapPos + self.song.period / 4 e = [(time, event) for time, event in self.song.track.getEvents(t1, t2) if isinstance(event, Note)] for time, event in e: if event.number == self.guitar.selectedString: self.song.track.removeEvent(time, event) self.modified = True elif key == pygame.K_SPACE and self.song: if self.song.isPlaying(): self.song.stop() else: self.song.play(start = self.pos) c = self.controls.keyPressed(key) if c: self.controlPressed(c) return True
def keyPressed(self, key, unicode): c = self.engine.input.controls.getMapping(key) if c in Player.CANCELS: self.engine.view.pushLayer(self.menu) elif key == pygame.K_PAGEDOWN and self.song: d = self.song.difficulty[0] v = difficulties.values() self.song.difficulty[0] = v[(v.index(d) + 1) % len(v)] elif key == pygame.K_PAGEUP and self.song: d = self.song.difficulty[0] v = difficulties.values() self.song.difficulty[0] = v[(v.index(d) - 1) % len(v)] elif key == pygame.K_DELETE and self.song: # gather up all events that intersect the cursor and delete the ones on the selected string t1 = self.snapPos t2 = self.snapPos + self.song.period / 4 e = [(time, event) for time, event in self.song.track[0].getEvents(t1, t2) if isinstance(event, Note)] for time, event in e: if event.number == self.guitar.selectedString: self.song.track[0].removeEvent(time, event) self.modified = True elif key == pygame.K_SPACE and self.song: if self.song.isPlaying(): self.song.stop() else: self.song.play(start=self.pos) c = self.controls.keyPressed(key) if c: self.controlPressed(c) return True