Esempio n. 1
0
    def startPick(self, song, pos, controls, hopo=False):
        if not song:
            return False
        if not song.readyToGo:
            return

        # no self.matchingNotes?
        if not self.matchingNotes:
            return False
        self.playedNotes = []
        self.pickStartPos = pos

        #adding bass drum hit every bass fret:

        for time, note in self.matchingNotes:
            for i in range(5):
                if note.number == i and (controls.getState(
                        self.keys[i]) or controls.getState(
                            self.keys[i + 5])) and self.drumsHeldDown[i] > 0:
                    if self.guitarSolo:
                        self.currentGuitarSoloHitNotes += 1
                    if i == 0 and self.fretboardHop < 0.07:
                        self.fretboardHop = 0.07  #stump

                    if shaders.turnon:
                        shaders.var["fret"][self.player][
                            note.number] = shaders.time()
                        shaders.var["fretpos"][self.player][note.number] = pos

                    return self.hitNote(time, note)

        return False
Esempio n. 2
0
    def startPick(self, song, pos, controls, hopo = False):
        if not song:
            return False
        if not song.readyToGo:
            return

        # no self.matchingNotes?
        if not self.matchingNotes:
            return False
        self.playedNotes = []
        self.pickStartPos = pos

        #adding bass drum hit every bass fret:

        for time, note in self.matchingNotes:
            for i in range(5):
                if note.number == i and (controls.getState(self.keys[i]) or controls.getState(self.keys[i+5])) and self.drumsHeldDown[i] > 0:
                    if self.guitarSolo:
                        self.currentGuitarSoloHitNotes += 1
                    if i == 0 and self.fretboardHop < 0.07:
                        self.fretboardHop = 0.07  #stump

                    if shaders.turnon:
                        shaders.var["fret"][self.player][note.number]=shaders.time()
                        shaders.var["fretpos"][self.player][note.number]=pos

                    return self.hitNote(time, note)



        return False
Esempio n. 3
0
 def soloFreestylePick(self, song, pos, controls):
     numHits = 0
     for theFret in range(5):
         self.freestyleHit[theFret] = controls.getState(self.keys[theFret+5])
         if self.freestyleHit[theFret]:
             if shaders.turnon:
                 shaders.var["fret"][self.player][theFret]=shaders.time()
                 shaders.var["fretpos"][self.player][theFret]=pos
             numHits += 1
     return numHits
Esempio n. 4
0
 def soloFreestylePick(self, song, pos, controls):
     numHits = 0
     for theFret in range(5):
         self.freestyleHit[theFret] = controls.getState(self.keys[theFret+5])
         if self.freestyleHit[theFret]:
             if shaders.turnon:
                 shaders.var["fret"][self.player][theFret]=shaders.time()
                 shaders.var["fretpos"][self.player][theFret]=pos
             numHits += 1
     return numHits
Esempio n. 5
0
    def freestylePick(self, song, pos, controls):
        numHits = 0
        #if not song:
        #  return numHits

        if not controls.getState(self.actions[0]) and not controls.getState(self.actions[1]):
            return 0

        for theFret in range(5):
            self.freestyleHit[theFret] = controls.getState(self.keys[theFret])
            if self.freestyleHit[theFret]:
                if shaders.turnon:
                    shaders.var["fret"][self.player][theFret]=shaders.time()
                    shaders.var["fretpos"][self.player][theFret]=pos
                numHits += 1
        return numHits
Esempio n. 6
0
    def freestylePick(self, song, pos, controls):
        numHits = 0
        #if not song:
        #  return numHits

        if not controls.getState(self.actions[0]) and not controls.getState(self.actions[1]):
            return 0

        for theFret in range(5):
            self.freestyleHit[theFret] = controls.getState(self.keys[theFret])
            if self.freestyleHit[theFret]:
                if shaders.turnon:
                    shaders.var["fret"][self.player][theFret]=shaders.time()
                    shaders.var["fretpos"][self.player][theFret]=pos
                numHits += 1
        return numHits
Esempio n. 7
0
    def drawSideBars(self, visibility, song, pos):
        if not song:
            return
        if not song.readyToGo:
            return

        v = visibility
        w = self.boardWidth + 0.15

        if self.failcount == v:
            board_col = self.board_col_flash
        else:
            board_col = self.board_col

        gl.glEnable(gl.GL_TEXTURE_2D)

        if self.instrument.starPowerActive and self.oSideBars and not (
                self.guitarSolo or self.soloSideBars):
            self.oSideBars.texture.bind()
        elif self.instrument.starPowerActive and self.oSoloSideBars and self.oSidebars and self.guitarSolo:
            self.oSoloSideBars.texture.bind()
        elif self.guitarSolo and self.soloSideBars:
            self.soloSideBars.texture.bind()
        elif self.sideBars:
            self.sideBars.texture.bind()

        if self.isFailing and self.failSideBars and v == self.failcount:
            self.failSideBars.texture.bind()

        cmgl.drawArrays(gl.GL_TRIANGLE_STRIP,
                        vertices=self.sidebars_vtx,
                        colors=board_col,
                        texcoords=self.board_tex)
        gl.glDisable(gl.GL_TEXTURE_2D)

        if shaders.enable("sololight"):
            shaders.modVar("color", shaders.var["solocolor"])
            shaders.setVar("offset", (-3.5, -w / 2))
            cmgl.drawArrays(gl.GL_TRIANGLE_STRIP, vertices=self.soloLightVtx1)
            shaders.setVar("offset", (-3.5, w / 2))
            shaders.setVar("time", shaders.time() + 0.5)
            cmgl.drawArrays(gl.GL_TRIANGLE_STRIP, vertices=self.soloLightVtx2)
            shaders.disable()
Esempio n. 8
0
File: Neck.py Progetto: htvu/fofix
    def drawSideBars(self, visibility, song, pos):
        if not song:
            return
        if not song.readyToGo:
            return

        v = visibility
        w = self.boardWidth + 0.15

        if self.failcount == v:
            board_col = self.board_col_flash
        else:
            board_col = self.board_col

        gl.glEnable(gl.GL_TEXTURE_2D)

        if self.instrument.starPowerActive and self.oSideBars and not (self.guitarSolo or self.soloSideBars):
            self.oSideBars.texture.bind()
        elif self.instrument.starPowerActive and self.oSoloSideBars and self.oSidebars and self.guitarSolo:
            self.oSoloSideBars.texture.bind()
        elif self.guitarSolo and self.soloSideBars:
            self.soloSideBars.texture.bind()
        elif self.sideBars:
            self.sideBars.texture.bind()



        if self.isFailing and self.failSideBars and v == self.failcount:
            self.failSideBars.texture.bind()

        cmgl.drawArrays(gl.GL_TRIANGLE_STRIP, vertices=self.sidebars_vtx, colors=board_col, texcoords=self.board_tex)
        gl.glDisable(gl.GL_TEXTURE_2D)

        if shaders.enable("sololight"):
            shaders.modVar("color",shaders.var["solocolor"])
            shaders.setVar("offset",(-3.5,-w/2))
            cmgl.drawArrays(gl.GL_TRIANGLE_STRIP, vertices=self.soloLightVtx1)
            shaders.setVar("offset",(-3.5,w/2))
            shaders.setVar("time",shaders.time()+0.5)
            cmgl.drawArrays(gl.GL_TRIANGLE_STRIP, vertices=self.soloLightVtx2)
            shaders.disable()
Esempio n. 9
0
    def startPick3(self, song, pos, controls, hopo = False):
        if not song:
            return False
        if not song.readyToGo:
            return False

        self.lastPlayedNotes = self.playedNotes
        self.playedNotes = []

        self.controlsMatchNotes3(controls, self.matchingNotes, hopo=hopo)

        #myfingershurt

        for time, note in self.matchingNotes:
            if note.played != True:
                continue

            self.pickStartPos = max(pos, time)

            if shaders.turnon:
                shaders.var["fret"][self.player][note.number]=shaders.time()
                shaders.var["fretpos"][self.player][note.number]=pos

            if hopo:
                note.hopod        = True
            else:
                note.played       = True
            if note.tappable == 1 or note.tappable == 2:
                self.hopoActive = time
                self.wasLastNoteHopod = True
            elif note.tappable == 3:
                self.hopoActive = -time
                self.wasLastNoteHopod = True
                if hopo:  #MFH - you just tapped a 3 - make a note of it. (har har)
                    self.hopoProblemNoteNum = note.number
                    self.sameNoteHopoString = True
            else:
                self.hopoActive = 0
                self.wasLastNoteHopod = False
            self.hopoLast     = note.number
            self.playedNotes.append([time, note])
            if self.guitarSolo:
                self.currentGuitarSoloHitNotes += 1



        #myfingershurt: be sure to catch when a chord is played
        if len(self.playedNotes) > 1:
            lastPlayedNote = None
            for time, note in self.playedNotes:
                if isinstance(lastPlayedNote, Note):
                    if note.tappable == 1 and lastPlayedNote.tappable == 1:
                        self.LastStrumWasChord = True
                    else:
                        self.LastStrumWasChord = False
                lastPlayedNote = note

        elif len(self.playedNotes) > 0: #ensure at least that a note was played here
            self.LastStrumWasChord = False

        if len(self.playedNotes) != 0:
            return True
        return False
Esempio n. 10
0
    def startPick3(self, song, pos, controls, hopo=False):
        if not song:
            return False
        if not song.readyToGo:
            return False

        self.lastPlayedNotes = self.playedNotes
        self.playedNotes = []

        self.controlsMatchNotes3(controls, self.matchingNotes, hopo=hopo)

        #myfingershurt

        for time, note in self.matchingNotes:
            if note.played != True:
                continue

            self.pickStartPos = max(pos, time)

            if shaders.turnon:
                shaders.var["fret"][self.player][note.number] = shaders.time()
                shaders.var["fretpos"][self.player][note.number] = pos

            if hopo:
                note.hopod = True
            else:
                note.played = True
            if note.tappable == 1 or note.tappable == 2:
                self.hopoActive = time
                self.wasLastNoteHopod = True
            elif note.tappable == 3:
                self.hopoActive = -time
                self.wasLastNoteHopod = True
                if hopo:  #MFH - you just tapped a 3 - make a note of it. (har har)
                    self.hopoProblemNoteNum = note.number
                    self.sameNoteHopoString = True
            else:
                self.hopoActive = 0
                self.wasLastNoteHopod = False
            self.hopoLast = note.number
            self.playedNotes.append([time, note])
            if self.guitarSolo:
                self.currentGuitarSoloHitNotes += 1

        #myfingershurt: be sure to catch when a chord is played
        if len(self.playedNotes) > 1:
            lastPlayedNote = None
            for time, note in self.playedNotes:
                if isinstance(lastPlayedNote, Note):
                    if note.tappable == 1 and lastPlayedNote.tappable == 1:
                        self.LastStrumWasChord = True
                    else:
                        self.LastStrumWasChord = False
                lastPlayedNote = note

        elif len(self.playedNotes
                 ) > 0:  #ensure at least that a note was played here
            self.LastStrumWasChord = False

        if len(self.playedNotes) != 0:
            return True
        return False
Esempio n. 11
0
File: Neck.py Progetto: htvu/fofix
    def renderNeck(self, visibility, song, pos):
        if not song:
            return
        if not song.readyToGo:
            return

        v = visibility

        offset = (pos - self.lastBpmChange) / self.currentPeriod + self.baseBeat

        #myfingershurt: every theme can have oNeck:

        if self.guitarSolo and self.soloNeck and self.guitarSoloNeckMode == 1:
            neck = self.soloNeck
        elif self.scoreMultiplier > 4 and self.bassGrooveNeck and self.bassGrooveNeckMode == 1:
            neck = self.bassGrooveNeck
        elif self.fourxNeckMode == 1 and self.fourMultiNeck and self.scoreMultiplier == 4:
            neck = self.fourMultiNeck
        elif self.instrument.starPowerActive and not (self.spcount2 != 0 and self.spcount < 1.2) and self.oNeck and self.scoreMultiplier <= 4 and not self.ovrneckoverlay:
            neck = self.oNeck
        else:
            neck = self.neckDrawing


        self.renderNeckMethod(v*self.neckAlpha[1], offset, neck)

        if self.guitarSolo and self.soloNeck and self.guitarSoloNeckMode == 2:   #static overlay
            self.renderNeckMethod(v*self.neckAlpha[2], 0, self.soloNeck)

        if self.bgcount > 0 and self.bassGrooveNeck and self.bassGrooveNeckMode == 2:   #static bass groove overlay
            self.renderNeckMethod(v*self.bgcount*self.neckAlpha[3], 0, self.bassGrooveNeck)

        if self.fourXcount > 0 and self.fourMultiNeck and self.fourxNeckMode == 2:   #4x multi overlay neck
            self.renderNeckMethod(v*self.fourXcount*self.neckAlpha[6], offset, self.fourMultiNeck)

        if self.spcount2 != 0 and self.spcount < 1.2 and self.oNeck:   #static overlay
            if self.oNeckovr and (self.scoreMultiplier > 4 or self.guitarSolo or self.ovrneckoverlay):
                neck = self.oNeckovr
                alpha = False
            else:
                neck = self.oNeck
                alpha = True

            self.renderNeckMethod(v*self.spcount*self.neckAlpha[4], offset, neck, alpha)

        if self.instrument.starPowerActive and not (self.spcount2 != 0 and self.spcount < 1.2) and self.oNeck and (self.scoreMultiplier > 4 or self.guitarSolo or self.ovrneckoverlay):   #static overlay
            if self.oNeckovr:
                neck = self.oNeckovr
                alpha = False
            else:
                neck = self.oNeck
                alpha = True

            self.renderNeckMethod(v*self.neckAlpha[4], offset, neck, alpha)

        if shaders.enabled:
            shaders.globals["basspos"]        = shaders.var["fret"][self.player][0]
            shaders.globals["notepos"]        = shaders.var["fret"][self.player][1:]
            shaders.globals["bpm"]            = self.instrument.currentBpm
            shaders.globals["songpos"]        = pos
            shaders.globals["spEnabled"]      = self.instrument.starPowerActive
            shaders.globals["isFailing"]      = self.isFailing
            shaders.globals["isMultChanged"]  = (shaders.var["scoreMult"][self.player] != self.scoreMultiplier)
            if shaders.globals["isMultChanged"]:
                shaders.var["multChangePos"][self.player]  = pos
            shaders.globals["scoreMult"]                 = self.scoreMultiplier
            shaders.var["scoreMult"][self.player]        = self.scoreMultiplier
            shaders.globals["isDrum"]                    = self.isDrum
            shaders.globals["soloActive"]                = self.guitarSolo

            posx = shaders.time()
            neckcol = (0,0,0)

            notecolors = list(self.engine.theme.noteColors)
            if self.isDrum:
                notecolors[4] = notecolors[0]
                notecolors[0] = self.engine.theme.noteColors[5]


            for i in range(5):
                blend   = max(shaders.var["fret"][self.player][i] - posx + 1.5,0.01)
                neckcol = mixColors(neckcol, notecolors[i], blend)

            shaders.var["color"][self.player]=neckcol

        if shaders.enable("neck"):
            shaders.setVar("fretcol",neckcol)
            shaders.update()
            cmgl.drawArrays(gl.GL_TRIANGLE_STRIP, vertices=self.shader_neck_vtx)
            shaders.disable()
        else:
            if self.isFailing:
                self.renderNeckMethod(self.failcount, 0, self.failNeck)

        if (self.guitarSolo or self.instrument.starPowerActive) and self.theme == 1:
            shaders.var["solocolor"]=self.shaderSolocolor
        else:
            shaders.var["solocolor"]=(0.0,)*4
Esempio n. 12
0
    def renderNeck(self, visibility, song, pos):
        if not song:
            return
        if not song.readyToGo:
            return

        v = visibility

        offset = (pos -
                  self.lastBpmChange) / self.currentPeriod + self.baseBeat

        #myfingershurt: every theme can have oNeck:

        if self.guitarSolo and self.soloNeck and self.guitarSoloNeckMode == 1:
            neck = self.soloNeck
        elif self.scoreMultiplier > 4 and self.bassGrooveNeck and self.bassGrooveNeckMode == 1:
            neck = self.bassGrooveNeck
        elif self.fourxNeckMode == 1 and self.fourMultiNeck and self.scoreMultiplier == 4:
            neck = self.fourMultiNeck
        elif self.instrument.starPowerActive and not (
                self.spcount2 != 0 and self.spcount < 1.2
        ) and self.oNeck and self.scoreMultiplier <= 4 and not self.ovrneckoverlay:
            neck = self.oNeck
        else:
            neck = self.neckDrawing

        self.renderNeckMethod(v * self.neckAlpha[1], offset, neck)

        if self.guitarSolo and self.soloNeck and self.guitarSoloNeckMode == 2:  #static overlay
            self.renderNeckMethod(v * self.neckAlpha[2], 0, self.soloNeck)

        if self.bgcount > 0 and self.bassGrooveNeck and self.bassGrooveNeckMode == 2:  #static bass groove overlay
            self.renderNeckMethod(v * self.bgcount * self.neckAlpha[3], 0,
                                  self.bassGrooveNeck)

        if self.fourXcount > 0 and self.fourMultiNeck and self.fourxNeckMode == 2:  #4x multi overlay neck
            self.renderNeckMethod(v * self.fourXcount * self.neckAlpha[6],
                                  offset, self.fourMultiNeck)

        if self.spcount2 != 0 and self.spcount < 1.2 and self.oNeck:  #static overlay
            if self.oNeckovr and (self.scoreMultiplier > 4 or self.guitarSolo
                                  or self.ovrneckoverlay):
                neck = self.oNeckovr
                alpha = False
            else:
                neck = self.oNeck
                alpha = True

            self.renderNeckMethod(v * self.spcount * self.neckAlpha[4], offset,
                                  neck, alpha)

        if self.instrument.starPowerActive and not (
                self.spcount2 != 0 and self.spcount < 1.2) and self.oNeck and (
                    self.scoreMultiplier > 4 or self.guitarSolo
                    or self.ovrneckoverlay):  #static overlay
            if self.oNeckovr:
                neck = self.oNeckovr
                alpha = False
            else:
                neck = self.oNeck
                alpha = True

            self.renderNeckMethod(v * self.neckAlpha[4], offset, neck, alpha)

        if shaders.enabled:
            shaders.globals["basspos"] = shaders.var["fret"][self.player][0]
            shaders.globals["notepos"] = shaders.var["fret"][self.player][1:]
            shaders.globals["bpm"] = self.instrument.currentBpm
            shaders.globals["songpos"] = pos
            shaders.globals["spEnabled"] = self.instrument.starPowerActive
            shaders.globals["isFailing"] = self.isFailing
            shaders.globals["isMultChanged"] = (
                shaders.var["scoreMult"][self.player] != self.scoreMultiplier)
            if shaders.globals["isMultChanged"]:
                shaders.var["multChangePos"][self.player] = pos
            shaders.globals["scoreMult"] = self.scoreMultiplier
            shaders.var["scoreMult"][self.player] = self.scoreMultiplier
            shaders.globals["isDrum"] = self.isDrum
            shaders.globals["soloActive"] = self.guitarSolo

            posx = shaders.time()
            neckcol = (0, 0, 0)

            notecolors = list(self.engine.theme.noteColors)
            if self.isDrum:
                notecolors[4] = notecolors[0]
                notecolors[0] = self.engine.theme.noteColors[5]

            for i in range(5):
                blend = max(shaders.var["fret"][self.player][i] - posx + 1.5,
                            0.01)
                neckcol = mixColors(neckcol, notecolors[i], blend)

            shaders.var["color"][self.player] = neckcol

        if shaders.enable("neck"):
            shaders.setVar("fretcol", neckcol)
            shaders.update()
            cmgl.drawArrays(gl.GL_TRIANGLE_STRIP,
                            vertices=self.shader_neck_vtx)
            shaders.disable()
        else:
            if self.isFailing:
                self.renderNeckMethod(self.failcount, 0, self.failNeck)

        if (self.guitarSolo
                or self.instrument.starPowerActive) and self.theme == 1:
            shaders.var["solocolor"] = self.shaderSolocolor
        else:
            shaders.var["solocolor"] = (0.0, ) * 4