Exemplo n.º 1
0
    def update(self, time):
        if InputManager.getPressed("up"):
            self.selectionID -= 1
            if self.selectionID < 0:
                self.selectionID = 5
            AudioManager.sounds["menu"]["menuSound.ogg"].play()
        elif InputManager.getPressed("down"):
            self.selectionID = (self.selectionID + 1) % 6
            AudioManager.sounds["menu"]["menuSound.ogg"].play()

        if InputManager.getPressed("enter"):
            AudioManager.sounds["menu"]["menuSound.ogg"].play()
            AudioManager.unloadSfxSet("menu")
            if self.selectionID == 0:
                self.enter_game()
            elif self.selectionID == 1:
                self.enter_map()
            elif self.selectionID == 2:
                self.enter_highscore()
            elif self.selectionID == 3:
                self.enter_settings()
            elif self.selectionID == 4:
                self.enter_main()
            elif self.selectionID == 5:
                self.exit_game()
        if InputManager.getPressed("esc"):
            self.enter_game()
        self.time += time
        if self.time < PauseScreen.FADEINTIME:
            ratio = self.time / PauseScreen.FADEINTIME
            value = int(ratio * 255)
            halfValue = int(ratio * 127)
            self.color = pygame.color.Color(value, value, value)
            self.selectedColor =\
                pygame.color.Color(halfValue, value, halfValue)
Exemplo n.º 2
0
    def update(self, time):
        if InputManager.getPressed("up"):
            self.selectionID -= 1
            if self.selectionID < 0:
                self.selectionID = 3
            AudioManager.sounds["menu"]["menuSound.ogg"].play()
        elif InputManager.getPressed("down"):
            self.selectionID = (self.selectionID + 1) % 4
            AudioManager.sounds["menu"]["menuSound.ogg"].play()

        if InputManager.getPressed("enter"):
            AudioManager.sounds["menu"]["menuSound.ogg"].play()
            AudioManager.unloadSfxSet("menu")
            if self.selectionID == 0:
                self.enter_game()
            elif self.selectionID == 1:
                Globals.STATE = SkillScreen.SkillScreen()
            elif self.selectionID == 2:
                Globals.STATE = MapScreen.MapScreen()
            elif self.selectionID == 3:
                self.enter_main()
        self.time += time
        if self.time < WinScreen.FADEINTIME:
            ratio = self.time / WinScreen.FADEINTIME
            value = int(ratio * 255)
            halfValue = int(ratio * 127)
            self.color = pygame.color.Color(value, value, value)
            self.selectedColor =\
                pygame.color.Color(halfValue, value, halfValue)
Exemplo n.º 3
0
 def __init__(self):
     self.time = 0.0
     self.color = pygame.color.Color("black")
     self.selectedColor = pygame.color.Color("black")
     Globals.SCREEN.fill(pygame.color.Color("black"))
     self.selectionID = 0
     AudioManager.loadSfxSet("menu")
Exemplo n.º 4
0
    def update(self, time):
        if InputManager.getPressed("up"):
            self.selectionID -= 1
            if self.selectionID < 0:
                self.selectionID = 2
            AudioManager.sounds["menu"]["menuSound.ogg"].play()
        elif InputManager.getPressed("down"):
            self.selectionID = (self.selectionID + 1) % 3
            AudioManager.sounds["menu"]["menuSound.ogg"].play()

        if InputManager.getPressed("enter"):
            AudioManager.sounds["menu"]["menuSound.ogg"].play()
            AudioManager.unloadSfxSet("menu")
            if self.selectionID == 0:
                self.enter_csetup()
            elif self.selectionID == 1:
                Globals.LASTSCREENSETTING = True
                Globals.STATE = ControlScreen.ControlScreen()
            elif self.selectionID == 2:
                self.enter_back()
        if InputManager.getPressed("esc"):
            self.enter_back()
        self.time += time
        if self.time < SettingScreen.FADEINTIME:
            ratio = self.time / SettingScreen.FADEINTIME
            value = int(ratio * 255)
            halfValue = int(ratio * 127)
            self.color = pygame.color.Color(value, value, value)
            self.selectedColor =\
                pygame.color.Color(halfValue, value, halfValue)
Exemplo n.º 5
0
 def getKeyPressed(self):
     try:
         while(True):
             for j in range(3):
                 GPIO.output(self.COL[j],0)
                 for i in range(4):
                     if GPIO.input(self.ROW[i]) == 0:
                         #print "Play " + self.MATRIX[i][j]
                         AudioManager.play(self.MATRIX[i][j])
                         print self.MATRIX[i][j] + " pressed"
                         self.preKeyPressed = self.preKeyPressed[1:] + self.MATRIX[i][j]
                         #print "history = " + self.preKeyPressed
                         GPIO.output(self.COL[j],1)
                         #print "GPIO.output(self.COL[j],1)"
                         if self.preKeyPressed == "**#" :
                             #print "Throw Exception"
                             raise ValueError("Re-enter Input")
                         #print "sleep"
                         time.sleep(0.5)
                         #print "return " + self.MATRIX[i][j]
                         return self.MATRIX[i][j]
                 GPIO.output(self.COL[j],1)
                 #time.sleep(0.2)
         
     except KeyboardInterrupt:
         print "Keyboard has problem!!!"
         GPIO.cleanup();
     return '0'
Exemplo n.º 6
0
 def exitGame(self):
     ImageManager.unloadSet("debug")
     AudioManager.unloadSfxSet("debug")
     World.cleanupCompletely()
     Globals.PLAYER = None
     pygame.mixer.music.fadeout(1000)
     if Globals.CURRENT_LEVEL == "one":
         Globals.CURRENT_LEVEL = "two"
         if Globals.LEVELS_BEAT < 1:
             Globals.LEVELS_BEAT = 1
     elif Globals.CURRENT_LEVEL == "two":
         Globals.CURRENT_LEVEL = "three"
         if Globals.LEVELS_BEAT < 2:
             Globals.LEVELS_BEAT = 2
     elif Globals.CURRENT_LEVEL == "three":
         Globals.CURRENT_LEVEL = "four"
         if Globals.LEVELS_BEAT < 3:
             Globals.LEVELS_BEAT = 3
     elif Globals.CURRENT_LEVEL == "four":
         Globals.CURRENT_LEVEL = "five"
         if Globals.LEVELS_BEAT < 4:
             Globals.LEVELS_BEAT = 4
     Globals.MINI_SUNS_INLVL = 0
     Globals.STATE = WinScreen.WinScreen()
     Globals.CHECKPOINT_SET = False
Exemplo n.º 7
0
 def run(self):
     while True:
         #print("My version is " + str(AudioManager.getMyVersionNumber()))
         #print("Current version is " + str(AudioManager.getCurrentVersionNumber()))
         AudioManager.updateAudioContent()
         AudioManager.updateHiAudioContent()
         #AudioManager.playRandomFile()
         time.sleep(5)
 def __init__(self):
     self.time = 0.0
     self.color = pygame.color.Color("white")
     AudioManager.loadSfxSet("title")
     ImageManager.loadSet("cutscene")
     self.temp = ImageManager.levelRes["cutscene"]["YOUWIN.png"]
     self.state = 0
     self.sceneTime = 0.0
Exemplo n.º 9
0
 def __init__(self):
     self.time = 0.0
     self.color = pygame.color.Color("black")
     self.selectedColor = pygame.color.Color("black")
     Globals.SCREEN.fill(pygame.color.Color("black"))
     self.temp = pygame.Surface((1, 1))
     self.selectionID = 1
     self.text = "LEVEL COMPLETE!"
     self.width, self.height = Globals.FONT.size(self.text)
     AudioManager.loadSfxSet("menu")
     Globals.LASTSCREENMAIN = False
Exemplo n.º 10
0
 def exitFinal(self):
     ImageManager.unloadSet("debug")
     AudioManager.unloadSfxSet("debug")
     World.cleanupCompletely()
     AudioManager.loadMusic("title")
     pygame.mixer.music.play(-1)
     if Globals.LEVELS_BEAT < 5:
         Globals.LEVELS_BEAT = 5
     Globals.SCORE = Globals.SCORE + 5000*Globals.MINI_SUNS
     Globals.PLAYER = None
     Globals.STATE = CompletedGameScreen.CompletedGameScreen()
     Globals.CHECKPOINT_SET = False
Exemplo n.º 11
0
 def __init__(self):
     self.time = 0.0
     self.color = pygame.color.Color("black")
     self.selectedColor = pygame.color.Color("black")
     Globals.SCREEN.fill(pygame.color.Color("black"))
     #self.selectionID = 0
     self.currentLevel()
     AudioManager.loadSfxSet("menu")
     ImageManager.loadSet("map")
     self.temp =\
         ImageManager.levelRes["map"]["Astoria_Map_Grass_aftersnowboss.png"]
     ImageManager.levelRes["map"]["Astoria_Map_Grass_aftersnowboss.png"] =\
         pygame.transform.scale(self.temp, (800, 600))
Exemplo n.º 12
0
 def __init__(self):
     self.time = 0.0
     self.color = pygame.color.Color("black")
     Globals.SCREEN.fill(pygame.color.Color("black"))
     self.text = "Noel's Journey ... "
     self.width, self.height = Globals.FONT.size(self.text)
     AudioManager.loadSfxSet("title")
     if AudioManager.loadedMusic != "title" or\
             not pygame.mixer.music.get_busy():
         AudioManager.loadMusic("title")
         pygame.mixer.music.play(-1)
     ImageManager.loadSet("title")
     self.temp = ImageManager.levelRes["title"]["Title_Screen.png"]
     ImageManager.levelRes["title"]["Title_Screen.png"] =\
         pygame.transform.scale(self.temp, (1000, 600))
Exemplo n.º 13
0
 def __init__(self):
     self.time = 0.0
     self.color = pygame.color.Color("white")
     Globals.SCREEN.fill(pygame.color.Color("black"))
     self.text = ""
     self.width, self.height = Globals.FONT.size(self.text)
     AudioManager.loadSfxSet("title")
     if AudioManager.loadedMusic != "title" or\
             not pygame.mixer.music.get_busy():
         AudioManager.loadMusic("title")
         pygame.mixer.music.play(-1)
     ImageManager.loadSet("cutscene")
     self.temp = ImageManager.levelRes["cutscene"]["CutSceneSnowboss.png"]
     ImageManager.levelRes["cutscene"]["CutSceneSnowboss.png"] =\
         pygame.transform.scale(self.temp, (800, 600))
Exemplo n.º 14
0
    def __init__(self):
        self.window_width = 800
        self.window_height = 600
        self.window = pygame.display.set_mode(
            (self.window_width, self.window_height))
        self.running = True
        self.top_color = (255, 225, 200)
        self.bottom_color = (50, 0, 50)
        self.clock = pygame.time.Clock()
        self.audio_manager = AudioManager.AudioManager()
        self.part_sys = ParticleSystem.ParticleSystem(self.top_color,
                                                      self.bottom_color)
        self.top_player = Player.Player(self.window_width // 2 - 12, -50,
                                        self.part_sys, self.audio_manager)
        self.bottom_player = Player.Player(self.window_width // 2 - 12,
                                           self.window_height, self.part_sys,
                                           self.audio_manager)
        self.immovable_num = 3
        self.level_num = -1
        self.max_level_num = 5
        self.level = Level.Level()
        self.camera = Camera.Camera(self.window)
        self.game_state = GameState.MENU
        self.credits = Credits.Credits(self.window_width, self.window_height,
                                       self.top_color)
        self.menu = Menu.Menu(self.window_width, self.window_height,
                              self.bottom_color, self.top_color)
        self.next_state = None
        self.transitioning = False
        self.animator = Animator.Animator()

        pygame.display.set_caption("Laws of Reflection")
        self.bottom_player.inverse()
        self.next_level()
Exemplo n.º 15
0
 def __init__(self):
     self.time = 0.0
     self.color = pygame.color.Color("black")
     Globals.SCREEN.fill(pygame.color.Color("black"))
     self.temp = pygame.Surface((1, 1))
     self.text = "Gyration Games"
     self.width, self.height = Globals.FONT.size(self.text)
     self.FADEIN = True
     self.GGames = True
     self.soundPlaying = False
     AudioManager.loadSfxSet("title")
     ImageManager.loadSet("map")
     self.temp2 =\
         ImageManager.levelRes["map"]["Astoria_Map_Grass_aftersnowboss.png"]
     ImageManager.levelRes["map"]["Astoria_Map_Grass_aftersnowboss.png"] =\
         pygame.transform.scale(self.temp2, (800, 600))
Exemplo n.º 16
0
    def update(self, time):
        if InputManager.getPressed("up"):
            self.selectionID -= 1
            if self.selectionID < 0:
                self.selectionID = 4
            AudioManager.sounds["menu"]["menuSound.ogg"].play()
        elif InputManager.getPressed("down"):
            self.selectionID = (self.selectionID + 1) % 5
            AudioManager.sounds["menu"]["menuSound.ogg"].play()

        if InputManager.getPressed("enter"):
            AudioManager.sounds["menu"]["menuSound.ogg"].play()
            AudioManager.unloadSfxSet("menu")
            if self.selectionID == 0:
                self.enter_game()
            elif self.selectionID == 1:
                self.enter_entry()
            elif self.selectionID == 2:
                self.enter_highScore()
            elif self.selectionID == 3:
                self.enter_settings()
            elif self.selectionID == 4:
                self.exit_title()
        if InputManager.getPressed("esc"):
            self.exit_title()
        self.time += time
        if self.time < MainScreen.FADEINTIME:
            ratio = self.time / MainScreen.FADEINTIME
            value = int(ratio * 255)
            halfValue = int(ratio * 127)
            self.color = pygame.color.Color(value, value, value)
            self.selectedColor =\
                pygame.color.Color(halfValue, value, halfValue)
        self.astoriaToggleTime += time
        if self.astoriaToggleTime < self.astoriaToggleTimeInterval:
            ratio = self.astoriaToggleTime / self.astoriaToggleTimeInterval
            self.astoriaOpacity = int(ratio * 255)
        elif self.astoriaToggleTime < self.astoriaToggleTimeInterval * 2:
            ratio = self.astoriaToggleTime / self.astoriaToggleTimeInterval
            ratio = 1 -\
                (self.astoriaToggleTime - self.astoriaToggleTimeInterval) /\
                self.astoriaToggleTimeInterval
            self.astoriaOpacity = int(ratio * 255)
        else:
            self.astoriaToggleTime = 0
Exemplo n.º 17
0
 def findDirectionToGo(self, realHeading, destHeading):
     diffAngle = min(abs(destHeading - realHeading), 360 - abs(realHeading - destHeading))
     print "find direction to go... real:", realHeading, "expect:", destHeading, "diff:", diffAngle,"mega:",self.curHeading,self.offsetDirection,self.curHeading+self.offsetDirection
     if (diffAngle < self.ANGLE_LIMIT) :
         print "Go straight"
         if (AudioManager.isBusy() == False):
             AudioManager.play("straight_ahead")
     elif (realHeading + diffAngle + 360) % 360 == destHeading:
         print "Turn right " + str(realHeading) + " " + str((realHeading + diffAngle + 360) % 360) + " " + str(destHeading)
         if (AudioManager.isBusy() == False) :
             AudioManager.play("right")
     else :
         print "Turn left " + str(realHeading) + " " + str((realHeading - diffAngle + 360) % 360) + " " + str(destHeading)
         if (AudioManager.isBusy() == False) :
             AudioManager.play("left")
Exemplo n.º 18
0
 def __init__(self):
     self.time = 0.0
     self.color = pygame.color.Color("black")
     self.selectedColor = pygame.color.Color("black")
     Globals.SCREEN.fill(pygame.color.Color("black"))
     self.selectionID = 0
     ImageManager.unloadAll()
     ImageManager.loadSet("Astoria")
     ImageManager.loadSet("debug")
     AudioManager.loadSfxSet("menu")
     AudioManager.loadSfxSet("game")
     if AudioManager.loadedMusic != "title" or\
             not pygame.mixer.music.get_busy():
         AudioManager.loadMusic("title")
         pygame.mixer.music.play(-1)
     Globals.LASTSCREENMAIN = True
     self.astoriaToggleTime = 0.0
     self.astoriaToggleTimeInterval = 2
     self.astoriaOpacity = 0
     temp = ImageManager.levelRes["Astoria"]["Astoria1.png"]
     temp2 = ImageManager.levelRes["Astoria"]["Astoria2.png"]
     width = 500
     height = 200
     ImageManager.levelRes["Astoria"]["Astoria1.png"] =\
         pygame.transform.scale(temp, (width, height))
     ImageManager.levelRes["Astoria"]["Astoria2.png"] =\
         pygame.transform.scale(temp2, (width, height))
Exemplo n.º 19
0
    def deadScreen(self):
        ImageManager.unloadSet("debug")
        AudioManager.unloadSfxSet("debug")
        World.cleanupCompletely()
        Globals.PLAYER = None
        pygame.mixer.music.stop()
        if Globals.MINI_SUNS_INLVL > 0:
            Globals.MINI_SUNS = Globals.MINI_SUNS - 1
        Globals.SCORE = Globals.SCORE - 1000*Globals.MINI_SUNS_INLVL
        if Globals.CURRENT_LEVEL != "five":
            pickCount = random.randint(1, 10)
            index = 0
            if Globals.MINI_SUNS_INLVL > 0:  # remove sun code
                while pickCount > 0:
                    index = (index + 1) % 5
                    if Globals.sunTr()[index]:
                        continue
                    pickCount -= 1
                Globals.SUN_TRACKER[Globals.CURRENT_LEVEL][index] = True
#            Globals.SUN_TRACKER[Globals.CURRENT_LEVEL] = self.sunArray
        Globals.STATE = OverScreen.OverScreen()
        Globals.MINI_SUNS_INLVL = 0
Exemplo n.º 20
0
            socketCommunicator.closeConnection()
            print "Connection Failed!"
        else :
            print "finish setting up socket"
        return True
    except:
        print "Init has problem!!!"
        return False

if __name__ == '__main__':
    while willProgramBeReseted:
        isProgramAlive = True
        willProgramBeReseted = False
    
        Thread(target = AudioManager.loadBGM).start()   # play background music
        AudioManager.init()                             # create thread to play audio
        isEverythingReady = init()                      # check everything is ready
        AudioManager.stopBGM()                          # stop background music
        if isEverythingReady:
            print "Starting threads..."
            startThreads()
        
        print "Oops! Something went wrong. The program will be terminated..."
        AudioManager.closeAudio()
        
        if (cameraReader != None):
            cameraReader.close()
            print "Closed the camera"
        
        if (socketCommunicator != None and socketCommunicator.isConnectionSuccessful):
            socketCommunicator.closeConnection()
Exemplo n.º 21
0
 def enter_main(self):
     Globals.STATE = MainScreen.MainScreen()
     AudioManager.unloadSfxSet("title")
Exemplo n.º 22
0
    def __init__(self):
        ImageManager.loadSet("player")
        ImageManager.loadSet("effects")
        ImageManager.loadSet(Globals.CURRENT_LEVEL)

        if len(World.groups["HUD"].sprites()) == 0:
            healthHud = Entity.Entity()
            healthHud.componentList.append(CHUDHealth.CHUDHealth())
            World.groups["HUD"].add(healthHud)

            #manaHud = Entity.Entity()
            #manaHud.componentList.append(CHUDMana.CHUDMana())
            #World.groups["HUD"].add(manaHud)

            healthText = Entity.Entity()
            healthText.componentList.append(CHUDHealthText.CHUDHealthText())
            World.groups["HUDText"].add(healthText)

            #manaText = Entity.Entity()
            #manaText.componentList.append(CHUDManaText.CHUDManaText())
            #World.groups["HUDText"].add(manaText)

            scoreText = Entity.Entity()
            scoreText.componentList.append(CHUDScoreText.CHUDScoreText())
            World.groups["HUDText"].add(scoreText)

            sunText = Entity.Entity()
            sunText.componentList.append(CHUDSunText.CHUDSunText())
            World.groups["HUDText"].add(sunText)

            if Globals.CURRENT_LEVEL == "five":
                bossHUD = Entity.Entity()
                bossHUD.componentList.append(CHUDBoss.CHUDBoss())
                World.groups["HUD"].add(bossHUD)

        if Globals.PLAYER is None:
            World.loadMap(Globals.CURRENT_LEVEL)
            World.loadBG(Globals.CURRENT_LEVEL)
            World.initialize()

            entity = Entity.Entity()
            entity.componentList.append(CAnimation.CAnimation(
                ImageManager.levelRes["player"]["Noel_SpriteSheet.png"],
                6, 6, 0, 0.17))
            entity.componentList.append(CPhysics.CPhysics())
            entity.componentList.append(CBasicControl.CBasicControl())
            entity.componentList.append(CCollision.CCollision())
            entity.componentList.append(CView.CView())
            entity.componentList.append(
                CLiving.CLiving(Globals.PLAYER_MAX_HEALTH))
            entity.componentList.append(CDamage.CDamage(Globals.PLAYER_DAMAGE))
            entity.componentList.append(CPlayer.CPlayer())
            entity.componentList.append(CDeathParticle.CDeathParticle(
                ImageManager.levelRes["player"]["Noel_Dead.png"],
                3,
                (0, -20),
                0,
                pygame.BLEND_ADD))
            World.groups["player"].add(entity)
            entity.initialize()
            entity.state = 1
            Globals.PLAYER = entity
            Globals.WIN = False
            Globals.TIME = 120

            zord = Entity.Entity()
            zord.componentList.append(CAnimation.CAnimation(
                ImageManager.levelRes["player"]["Zord_Spritesheet.png"],
                6, 6, 0, 0))
            zord.componentList.append(CPhysics.CPhysics())
            zord.accy = 0
            zord.componentList.append(CAttach.CAttach(entity, 53))
            World.groups["equipment"].add(zord)
            zord.initialize()

            if not Globals.CHECKPOINT_SET or Globals.CURRENT_LEVEL == "five":
                Globals.PLAYER.posx = World.playerPos[0]
                Globals.PLAYER.posy = World.playerPos[1]
            else:
                Globals.PLAYER.posx = float(Globals.getCheckpointPos()[0])
                Globals.PLAYER.posy = float(Globals.getCheckpointPos()[1])

        self.timer = 1.0
        self.bossWinTimer = 4.0

        if AudioManager.loadedMusic != Globals.CURRENT_LEVEL or\
                not pygame.mixer.music.get_busy():
            AudioManager.loadMusic(Globals.CURRENT_LEVEL)
            if AudioManager.loadedMusic == Globals.CURRENT_LEVEL:
                pygame.mixer.music.play(-1)
                if Globals.CURRENT_LEVEL == "five":
                    pygame.mixer.music.set_volume(0.1)

        if not Globals.CURRENT_LEVEL == "five":
            self.sunArray = []
            for sun in Globals.SUN_TRACKER[Globals.CURRENT_LEVEL]:
                self.sunArray.append(sun)
Exemplo n.º 23
0
def getUserInput():
    print "Enter Start Block:"
    AudioManager.play('enter_building')
    print "Try getting a number"
    startingBlock = keypadReader.getNumber()
    print "Start Block: " + str(startingBlock)
    
    print "Enter Start Level:"
    AudioManager.play('enter_level')
    startingLevel = keypadReader.getNumber()
    print "Start Level: " + str(startingLevel)
    
    print "Enter Start Id:"
    AudioManager.play('enter')
    startingId = keypadReader.getNumber()
    print "Start Id: " + str(startingId)
    
    print "Enter End Block:"
    AudioManager.play('enter_building')
    endingBlock = keypadReader.getNumber()
    print "End Block: " + str(endingBlock)
    
    print "Enter End Level:"
    AudioManager.play('enter_level')
    endingLevel = keypadReader.getNumber()
    print "End Level: " + str(endingLevel)
    
    print "Enter End Id:"
    AudioManager.play('enter')
    endingId = keypadReader.getNumber()
    print "End Id: " + str(endingId)
    
    return [startingBlock, startingLevel, startingId, endingBlock, endingLevel, endingId]
Exemplo n.º 24
0
import AudioManager

AudioManager.playRandomFile()

Exemplo n.º 25
0
                for i in range(0, len(self.obstacleList)):
                    newX = self.obstacleList[i][0] + cellToMove[0] - curXGrid
                    newY = self.obstacleList[i][1] + cellToMove[1] - curYGrid
                    newObstacleList.append((newX,newY))
                self.obstacleList = newObstacleList
                
                self.curX = self.curX + (cellToMove[0] - curXGrid) * self.GRID_LENGTH
                self.curY = self.curY + (cellToMove[1] - curYGrid) * self.GRID_LENGTH
                print "Moved You and Obstacles", heading,"from",(curXGrid, curYGrid),"to",cellToMove
                self.hasUpdate = True
    
    def findNeighborWithEqualDistance(self, x, y):
        for i in range(0, 8):
            x1 = x + self.nextDir[i][0]
            y1 = y + self.nextDir[i][1]
            if self.isValidPoint(x1, y1) and abs(self.minDist[x][y]- self.minDist[x1][y1]) < 0.5:
                return (x1, y1)
        return (x, y)
    
if __name__ == '__main__':
    AudioManager.init()
    gridMapNavigator = GridMapNavigator()
    if gridMapNavigator.setStartAndEndPoint({'startBlock' : 2, 'startLevel' : 2, 'startId' : 1,
                                             'endBlock' : 2, 'endLevel' : 2, 'endId' : 3}):
        gridMapNavigator.curX = 61
        gridMapNavigator.curY = 4024
        gridMapNavigator.curHeading = 135
        gridMapNavigator.putObstacle(0)
        gridMapNavigator.getInstruction()
    else :
        print "setStartAndEndPoint failed"
Exemplo n.º 26
0
 def exitScreen(self):
     ImageManager.unloadSet("debug")
     AudioManager.unloadSfxSet("debug")
     pygame.mixer.music.fadeout(1000)
     Globals.STATE = PauseScreen.PauseScreen()
Exemplo n.º 27
0
 def getInstruction(self):
     if len(self.pathToGo) <= 1:
         print "No more node!"
         return
     if self.hasReachedDestination:
         return
     
     if self.hasUpdate:
         self.calculateDistanceToDestination(self.mapManager.getNode(self.pathToGo[1][0], self.pathToGo[1][1], self.pathToGo[1][2]))
         self.hasUpdate = False
     
     realHeading = (self.mapHeading + self.curHeading + self.offsetDirection) % 360
     #realHeading = (self.mapHeading + self.curHeading) % 360
     #print realHeading
     curX = int(self.curX / self.GRID_LENGTH)
     curY = int(self.curY / self.GRID_LENGTH)
     
     # if cannot reach destination,
     if self.minDist[curX][curY] == self.INF:
         self.isCalculating = True
         print "Path is blocked! Finding another path..."
         self.mapManager.blockPath(self.pathToGo[0][0], self.pathToGo[0][1], self.pathToGo[0][2], self.pathToGo[1][2])
         
         self.pathToGo = self.dijkstra(self.mapManager.getNode(self.pathToGo[0][0], self.pathToGo[0][1], self.pathToGo[0][2]), self.endNode)
         if (len(self.pathToGo) <= 1) or (self.pathToGo[-1] != self.endNode):
             print "You will never reach the destination!!!"
             return
         self.calculateDistanceToDestination(self.mapManager.getNode(self.pathToGo[0][0], self.pathToGo[0][1], self.pathToGo[0][2]))
         self.isCalculating = False
         
     #print self.minDist[curX][curY]
     if (self.map[curX][curY] == self.pathToGo[1][2]): 
         self.preStepCount = self.stepCount
         self.stepCount = 0
         print 'You have reached node' ,self.map[curX][curY]
         audioName = str(self.curBuilding) + "-" + str(self.curLevel) + "-" + str(self.map[curX][curY])
         print audioName
         AudioManager.play(audioName)
         #AudioManager.playNumber(self.map[curX][curY])
         
         self.isCalculating = True
         self.prepareRouteToNextPoint()
         curNode = self.mapManager.getNode(self.pathToGo[0][0], self.pathToGo[0][1], self.pathToGo[0][2])
         self.offsetDirection = curNode.offset
         
         if len(self.pathToGo) <= 1:
             print "You reached the destination!"
             AudioManager.play('destination_reached')
             self.hasReachedDestination = True
             return
         self.calculateDistanceToDestination(self.mapManager.getNode(self.pathToGo[1][0], self.pathToGo[1][1], self.pathToGo[1][2]))
         self.isCalculating = False
     
     self.printMap()
     
     possibleHeading = []
     for i in range(0, 8):
         v = (curX + self.nextDir[i][0], curY + self.nextDir[i][1])
         #print v, self.minDist[v[0]][v[1]], self.minDist[curX][curY]
         if (self.isWall(v[0], v[1]) == False) and (self.minDist[v[0]][v[1]] < self.minDist[curX][curY]):
             #possibleHeading.append(self.nextDir[i][2])
             possibleHeading.append(i)
                 
     if len(possibleHeading) > 0:
         chosenHeading = self.chooseHeading(possibleHeading, curX, curY, realHeading)
         self.findDirectionToGo(realHeading, chosenHeading)
     else:
         print "Cannot find any direction! Try to turn right..."
         if (AudioManager.isBusy() == False) :
             AudioManager.play("right")
Exemplo n.º 28
0
import AudioManager

AudioManager.playConfirmSound()