def establish_controller(index, logger, light_sender, gui): try: controller = Xbox360Controller(index=index) logger.info(controller.name) except Exception: logger.error( f'Encountered exception initiating controller at index {index}', exc_info=True) return if 'Drum' in controller.name: light_sender.add_controller( 'drums', Drums(controller, logger, 'drums', (0, 0, 0), light_sender, gui), 1) elif 'WingMan' in controller.name: controller.axis_threshold = 0.05 light_sender.add_controller( 'car', Car(controller, logger, 'car', (0, 0, 0), light_sender, gui), 2) elif 'Guitar' in controller.name: light_sender.add_controller( 'guitar1', Guitar(controller, logger, 'guitar1', (0, 0, 0), light_sender, gui), 3) else: logger.error( f'Unrecognized controller found with name {controller.name}. Skipping it.' ) controller.close()
def __init__(self, engine, songName=None, libraryName=DEFAULT_LIBRARY): self.engine = engine self.time = 0.0 self.guitar = Guitar(self.engine, editorMode=True) self.controls = Player.Controls() self.camera = Camera() self.pos = 0.0 self.snapPos = 0.0 self.scrollPos = 0.0 self.scrollSpeed = 0.0 self.newNotes = None self.newNotePos = 0.0 self.song = None self.engine.loadSvgDrawing(self, "background", "editor.svg") self.modified = False self.songName = songName self.libraryName = libraryName self.heldFrets = set() self.spinnyDisabled = self.engine.config.get("game", "disable_spinny") mainMenu = [ (_("Save Song"), self.save), (_("Set Song Name"), self.setSongName), (_("Set Artist Name"), self.setArtistName), (_("Set Beats per Minute"), self.setBpm), (_("Estimate Beats per Minute"), self.estimateBpm), (_("Set A/V delay"), self.setAVDelay), (_("Set Cassette Color"), self.setCassetteColor), (_("Set Cassette Label"), self.setCassetteLabel), (_("Editing Help"), self.help), (_("Quit to Main Menu"), self.quit), ] self.menu = Menu(self.engine, mainMenu)
def main(): # Set up Rick's guitar inventory inventory = Inventory() initialize_inventory(inventory) what_erin_likes = Guitar("", 0, "fender", "Stratocastor", "electric", "Alder", "Alder") guitar = inventory.search(what_erin_likes) if guitar != None: print("Erin you might like this", guitar.builder, guitar.model, guitar.type, "guitar:\n", guitar.back_wood, "back and sides,\n", guitar.top_wood, "top.\n You can have it for only $", guitar.price, "!") else: print("Sorry, Erin, we have nothing for you.")
def createClient(self, libraryName, songName): self.guitar = Guitar(self.engine) self.visibility = 0.0 self.libraryName = libraryName self.songName = songName self.done = False self.sfxChannel = self.engine.audio.getChannel(self.engine.audio.getChannelCount() - 1) self.lastMultTime = None self.cheatCodes = [ ([117, 112, 116, 111, 109, 121, 116, 101, 109, 112, 111], self.toggleAutoPlay), ([102, 97, 115, 116, 102, 111, 114, 119, 97, 114, 100], self.goToResults) ] self.enteredCode = [] self.song = None self.autoPlay = False self.lastPickPos = None self.lastSongPos = 0.0 self.keyBurstTimeout = None self.keyBurstPeriod = 30 self.camera.target = (0, 0, 4) self.camera.origin = (0, 3, -3) self.loadSettings() self.engine.resource.load(self, "song", lambda: loadSong(self.engine, songName, library = libraryName), onLoad = self.songLoaded) self.stage = Stage.Stage(self, self.engine.resource.fileName("stage.ini")) self.engine.loadSvgDrawing(self, "fx2x", "2x.svg", textureSize = (256, 256)) self.engine.loadSvgDrawing(self, "fx3x", "3x.svg", textureSize = (256, 256)) self.engine.loadSvgDrawing(self, "fx4x", "4x.svg", textureSize = (256, 256)) Dialogs.showLoadingScreen(self.engine, lambda: self.song, text = _("Tuning Guitar...")) settingsMenu = Settings.GameSettingsMenu(self.engine) settingsMenu.fadeScreen = True self.menu = Menu(self.engine, [ (_("Return to Song"), lambda: None), (_("Restart Song"), self.restartSong), (_("Change Song"), self.changeSong), (_("Settings"), settingsMenu), (_("Quit to Main Menu"), self.quit), ], fadeScreen = True, onClose = self.resumeGame) self.restartSong()
def __init__(self): QMainWindow.__init__(self) # Setup the ui form self.ui = Ui_MainWindow() self.ui.setupUi(self) # Create a new QGraphicsScene and show it on the ui self.scene = QGraphicsScene(self) self.scene.setBackgroundBrush(QColor(120, 120, 120)) self.ui.graphicsView.setScene(self.scene) self.ui.graphicsView.show() # Setup tuning self.tuning = [('Standard Tuning', [ Note("E", 2), Note("A", 2), Note("D", 3), Note("G", 3), Note("B", 3), Note("E", 4) ]), ('Dropped D', [ Note("D", 2), Note("A", 2), Note("D", 3), Note("G", 3), Note("B", 3), Note("E", 4) ]), ('Dropped C', [ Note("C", 2), Note("G", 2), Note("C", 3), Note("F", 3), Note("A", 3), Note("D", 4) ])] t1 = QGraphicsTextItem() t2 = QGraphicsTextItem() t3 = QGraphicsTextItem() t4 = QGraphicsTextItem() t5 = QGraphicsTextItem() t6 = QGraphicsTextItem() self.tuning_list = [t1, t2, t3, t4, t5, t6] # Define fret number self.FRETS = 22 # Create a new Guitar object self.GibsonGuitar = Guitar(self.FRETS, self.tuning[0][1]) # Create a new Guitar Fretboard object and show it on the scene self.GibsonGuitar_Fretboard = GraphicsFretboard(self.FRETS) self.GibsonGuitar_Fretboard.setPos(0, 0) self.scene.addItem(self.GibsonGuitar_Fretboard) # Draw the tuning self.draw_tuning(self.tuning[0][1]) # Populate the notes pool self.notes = [ 'A', 'A#', 'B', 'C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#' ] # Populate the scales pool self.scales = [ Scale("Pentatonic Major", [2, 2, 3, 2, 3], 'box_pattern'), Scale("Pentatonic Minor", [3, 2, 2, 3, 2], 'box_pattern'), Scale("Pentatonic Blues", [3, 2, 1, 1, 3, 2], 'box_pattern'), Scale("Major", [2, 2, 1, 2, 2, 2, 1], 'three_notes'), Scale("Ionian", [2, 2, 1, 2, 2, 2, 1], 'three_notes'), Scale("Dorian", [2, 1, 2, 2, 2, 1, 2], 'three_notes'), Scale("Phrygian", [1, 2, 2, 2, 1, 2, 2], 'three_notes'), Scale("Lydian", [2, 2, 2, 1, 2, 2, 1], 'three_notes'), Scale("Mixolydian", [2, 2, 1, 2, 2, 1, 2], 'three_notes'), Scale("Aeolian", [2, 1, 2, 2, 1, 2, 2], 'three_notes'), Scale("Locrian", [1, 2, 2, 1, 2, 2, 2], 'three_notes'), Scale("Minor", [2, 1, 2, 2, 1, 2, 2], 'three_notes'), Scale("Harmonic Minor", [2, 1, 2, 2, 1, 3, 1], 'three_notes'), Scale("Melodic Minor - Ascending", [2, 1, 2, 2, 2, 2, 1], 'three_notes'), Scale("Melodic Minor - Descending", [2, 1, 2, 2, 1, 2, 2], 'three_notes'), Scale("Chromatic", [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'three_notes'), Scale("Whole Tone", [2, 2, 2, 2, 2, 2], 'three_notes'), Scale("Diminished", [2, 1, 2, 1, 2, 1, 2], 'four_notes') ] # Add notes and scales to the comboboxes for note in self.notes: self.ui.rootComboBox.addItem(note) for scale in self.scales: self.ui.scaleComboBox.addItem(scale.name) for item in self.tuning: self.ui.tuningComboBox.addItem(item[0]) # Set the init value to the first item self.ui.rootComboBox.setCurrentIndex = 0 self.ui.scaleComboBox.setCurrentIndex = 0 # Setup the root note and the current scale to be the first item from the combobox self.root_note = self.notes[self.ui.rootComboBox.currentIndex()] self.currentScale = self.scales[self.ui.scaleComboBox.currentIndex()] self.scale = self.currentScale.get_scale_notes(self.root_note) self.update_repr() # Signaling if combobox has changed self.ui.rootComboBox.currentIndexChanged.connect(self.update_ui) self.ui.scaleComboBox.currentIndexChanged.connect(self.update_ui) self.ui.tuningComboBox.currentIndexChanged.connect(self.update_tuning) # Set the initial position for the scale draw self.newPos = 0 # Set the initial string number for the one sting per scale representation self.sting_num = 0 # Length of the scale self.intervalLength = len(self.currentScale.intervals) # QTimer object for animation self.timer = QTimer() self.is_animation_active = False # Variable to store the actual scale on the guitar for drawing # It based on the Radio Button selection self.notes_to_draw = []
def add_guitar(self, serial_number, price, builder, model, type, back_wood, top_wood): guitar = Guitar(serial_number, price, builder, model, type, back_wood, top_wood) self.__guitars.append(guitar)
def addGuitar(self, serialNumber, price, spec): self.guitar = Guitar(serialNumber, price, spec) self._guitars.append(self.guitar)