Ejemplo n.º 1
0
Archivo: main.py Proyecto: iPazu/Slimy
    def __init__(self):
        self.debug = False
        ShowBase.__init__(self)
        self.accept("escape",sys.exit)

        # the dt should depend on the framerate
        self.dt = 0.25
        """try:
            self.database = Database()
            self.ranking = self.database.getRankingFromDatabase()
        except:
            pass"""
        self.musicManager.setConcurrentSoundLimit(2)

        #initiate game state
        self.state = 'Menu'
        self.terrain = Terrain(1024)
        """try:
            self.classement = Classement(self.ranking) 
            self.classement.hideMenu()
        except:
            pass"""
        self.menu = Menu()
        self.loadStartMenu()

        if(self.debug == False):
            self.disableMouse()
Ejemplo n.º 2
0
def main():

    con, panel, mouse, key = Initializer.init_game()

    newgame = Menu.main_menu(con, key, mouse)

    if not newgame:
        sys.exit(0)

    race, prof = Menu.starting_menu(con, key, mouse)

    world = World(race, prof)

    # world.debug = True

    mapmaker = MapMaker()

    mapmaker.new_dungeon(world)

    world.fov_map = Initializer.init_fov_map(world.tilemap)

    DeathFunctions.world = world

    while not libtcod.console_is_window_closed():

        RenderFunctions.render_all(con, panel, world)
        libtcod.console_flush()

        libtcod.sys_check_for_event(
            libtcod.EVENT_KEY_PRESS | libtcod.EVENT_MOUSE, key, mouse)

        action = Controls.handle_keys(key, world)

        world.update(action)
Ejemplo n.º 3
0
 def update(self, input):
     """
     @param input: The user input
     @summary: updates the inventory status based on the user input
     """
     Menu.update(self, input)
     if(not None == self.selectedItemIndex):
         self.visible = False
         returnWeapon = self.weapons[self.selectedItemIndex]
         self.selectedItemIndex = None
         return returnWeapon
     else:
         return None
Ejemplo n.º 4
0
    def __init__(self):
        self.current_difficulty = 1
        self.max_difficulty = 10
        self.levels = [Level1, Level2, Level3, Level4, Level5]
        self.max_level = len(self.levels)
        self.current_level = Level1

        adapter.init()
        adapter.set_screen(rgb=theme.BACKGROUND)
        screen_size = adapter.get_screen_size()
        self.menu = Menu(
            screen_size.current_w, screen_size.current_h,
            self.new_game, self.change_level, self.change_difficulty, self.exit
        )
        self.countdown_event = None
        self.countdown_surf = None
Ejemplo n.º 5
0
 def __init__(self, title):
     """
     @param title: The title of the inventory
     @summary: Initializes an inventory
     """
     Menu.__init__(self)
     self.max_weapons = 20
     self.weapons = []
     self.visible = True
     self.selectedItemIndex = None
     size = []
     size.append(Settings.SCREEN_WIDTH/4)
     size.append(Settings.SCREEN_HEIGHT/4)
     location = []
     location.append(Settings.SCREEN_WIDTH/2 - size[0]/2)
     location.append(Settings.SCREEN_HEIGHT/2 - size[1]/2)
     self.rect = Rect(location[0], location[1], size[0], size[1])
     self.title = title
     myTitleLable = Label(title)
     self.addWidget(myTitleLable)
     self.addWidget(Label(" "))
Ejemplo n.º 6
0
    def __init__(self):
        """
        @summary: Initializes a main menu
        """
        Scene.__init__(self)
        self.helpMenu = HelpMenu(self)

        self.menu = Menu()
        self.menu.addWidget(Button("Start", self.runGame))
        self.menu.addWidget(Button("Settings", self.runSettingsMenu))
        self.menu.addWidget(Button("Help", self.runHelpMenu))
        self.menu.addWidget(Button("Quit", self.quitGame))
Ejemplo n.º 7
0
    def __init__(self, parentScene):
        """
        Initialize the Settingsmenu
        @param parentScene: The scene he should go back to when the settings are adjusted
        """
    
        Scene.__init__(self)
        self.parentScene = parentScene
        self.frame = Menu()
        self.sliderPlayers = Slider(2, 4, Settings.GAME_PLAYERS, "Players: ")
        self.sliderSnails = Slider(2, 10, Settings.GAME_SNAILS, "Snails: ")
        self.sliderSnailsHp = Slider(1, 150, Settings.GAME_SNAILS_HP, "Hitpoints: ", 10)
        self.sliderStartTime = Slider(10, 90, Settings.TIMER_STARTTIME, "Turntime: ", 10)
        self.sliderBreakTime = Slider(1,10, Settings.TIMER_BREAKTIME, "Breaktime: ")

        self.frame.addWidget(self.sliderPlayers)
        self.frame.addWidget(self.sliderSnails)
        self.frame.addWidget(self.sliderSnailsHp)
        self.frame.addWidget(self.sliderStartTime)
        self.frame.addWidget(self.sliderBreakTime)
        self.frame.addWidget(Button("Ok",self.applySettings))
Ejemplo n.º 8
0
class World:
    def __init__(self):
        self.current_difficulty = 1
        self.max_difficulty = 10
        self.levels = [Level1, Level2, Level3, Level4, Level5]
        self.max_level = len(self.levels)
        self.current_level = Level1

        adapter.init()
        adapter.set_screen(rgb=theme.BACKGROUND)
        screen_size = adapter.get_screen_size()
        self.menu = Menu(
            screen_size.current_w, screen_size.current_h,
            self.new_game, self.change_level, self.change_difficulty, self.exit
        )
        self.countdown_event = None
        self.countdown_surf = None

    def new_game(self, *args, **kwargs):
        level = self.current_level(self.current_difficulty)
        level.reset()

        self.countdown_event, self.countdown_surf = self.set_countdown()
        self.run(level)

    def end_game(self):
        adapter.clean_event()
        self.next_level()
        self.show_menu()

    def exit(self):
        adapter.exit()

    def change_level(self, value, level):
        if level > self.max_level or level < 1:
            return
        self.current_level = self.levels[level-1]

    def change_difficulty(self, value, difficulty):
        if difficulty > self.max_difficulty or difficulty < 1:
            return
        self.current_difficulty = difficulty

    def next_level(self):
        pass

    def show_menu(self):
        self.menu.launch_menu(adapter.get_screen())

    def set_countdown(self):
        countdown_event = adapter.create_time_event(1000, 4)
        countdown_surf = [
            CountNumber(img.COUNTDOWN_3),
            CountNumber(img.COUNTDOWN_2),
            CountNumber(img.COUNTDOWN_1),
            CountNumber(None),
        ]
        return countdown_event, countdown_surf

    def run(self, level: LevelBase):
        running = True
        countdown_index = 0
        while running:
            level.hint()
            if countdown_index == 0:
                adapter.allow(self.countdown_event)

            for event in adapter.get_event():
                running = adapter.exit_game(event)

                if event.type == self.countdown_event:
                    level.exclude_boss_sprites.add(self.countdown_surf[countdown_index])
                    if countdown_index != 0:
                        level.exclude_boss_sprites.remove(self.countdown_surf[countdown_index - 1])

                    adapter.update_display()

                    if countdown_index == 3:
                        adapter.allow(None)

                    countdown_index += 1

                if countdown_index >= 4:
                    level.boss_move(event, level.player)
                    level.player_move(event, level.boss)
            level.update()

            for sprite in level.exclude_boss_sprites:
                adapter.bind_screen(sprite.surf, sprite.rect)

            adapter.update_display()

            level.spark_sprites.update()
            adapter.update_screen()

            if level.is_end():
                end_background = level.end_event()
                adapter.bind_screen(end_background, (0, 0))
                adapter.update_display()

                adapter.delay(2000)
                adapter.wait()
                running = False

        self.end_game()
Ejemplo n.º 9
0
    if pos_y > map_height:
        pos_y = map_height


try:

    # init window
    pygame.init()
    font = pygame.font.SysFont("consolas", 10)
    clock = pygame.time.Clock()
    window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
    window.fill((255, 255, 255))
    window.blit(font.render("Loading...", 1, (0, 0, 0)), (WINDOW_WIDTH / 2 - 10, WINDOW_HEIGHT / 2))
    rank = Rank(window, WINDOW_WIDTH - 150, 0)
    # Menu rendering
    menu = Menu(window, WINDOW_WIDTH, WINDOW_HEIGHT)
    nick_name, element, ip, port = menu.display()
    port = int(port)
    # connect and get fits data
    conn = client.Client(ip, port)
    # data taking from start screen later
    map_width, map_height, player_id, pos_x, pos_y = conn.connect(nick_name, element)
    player_id = str(player_id)
    real_r = 0
    SCALE = WINDOW_HEIGHT / map_height
    end_game = EndGame(window, WINDOW_WIDTH, WINDOW_HEIGHT)
    play_flag = True

    while True:

        clock.tick(FPS)
Ejemplo n.º 10
0
class SettingsMenu(Scene):
    def __init__(self, parentScene):
        """
        Initialize the Settingsmenu
        @param parentScene: The scene he should go back to when the settings are adjusted
        """
    
        Scene.__init__(self)
        self.parentScene = parentScene
        self.frame = Menu()
        self.sliderPlayers = Slider(2, 4, Settings.GAME_PLAYERS, "Players: ")
        self.sliderSnails = Slider(2, 10, Settings.GAME_SNAILS, "Snails: ")
        self.sliderSnailsHp = Slider(1, 150, Settings.GAME_SNAILS_HP, "Hitpoints: ", 10)
        self.sliderStartTime = Slider(10, 90, Settings.TIMER_STARTTIME, "Turntime: ", 10)
        self.sliderBreakTime = Slider(1,10, Settings.TIMER_BREAKTIME, "Breaktime: ")

        self.frame.addWidget(self.sliderPlayers)
        self.frame.addWidget(self.sliderSnails)
        self.frame.addWidget(self.sliderSnailsHp)
        self.frame.addWidget(self.sliderStartTime)
        self.frame.addWidget(self.sliderBreakTime)
        self.frame.addWidget(Button("Ok",self.applySettings))

    def update(self, input):
        """
        Update the settingsmenu
        @param input: The input class
        """
        self.frame.update(input)

    def draw(self, surface):
        """
        Draw the settingsmenu on a surface
        @param surface: The surface the settingsmenu should be drawed on
        """
        self.frame.draw(surface)

    def applySettings(self):
        """
        Adjust the game settings
        """
        Settings.GAME_PLAYERS = self.sliderPlayers.value
        Settings.GAME_SNAILS = self.sliderSnails.value
        Settings.GAME_SNAILS_HP = self.sliderSnailsHp.value
        Settings.TIMER_STARTTIME = self.sliderStartTime.value
        Settings.TIMER_BREAKTIME = self.sliderBreakTime.value
        SceneManager().setScene(self.parentScene)
Ejemplo n.º 11
0
Archivo: main.py Proyecto: iPazu/Slimy
class MyApp(ShowBase):

    def __init__(self):
        self.debug = False
        ShowBase.__init__(self)
        self.accept("escape",sys.exit)

        # the dt should depend on the framerate
        self.dt = 0.25
        """try:
            self.database = Database()
            self.ranking = self.database.getRankingFromDatabase()
        except:
            pass"""
        self.musicManager.setConcurrentSoundLimit(2)

        #initiate game state
        self.state = 'Menu'
        self.terrain = Terrain(1024)
        """try:
            self.classement = Classement(self.ranking) 
            self.classement.hideMenu()
        except:
            pass"""
        self.menu = Menu()
        self.loadStartMenu()

        if(self.debug == False):
            self.disableMouse()
        
    def loadStartMenu(self):
        self.accept("Menu-Start-Parkour", self.loadGame)
        self.accept("Menu-Start-World", self.loadGame)
        self.accept("Menu-Start-Ranking", self.loadRankingMenu)

        self.menu.showStartMenu()
        self.show_cursor()

    def exitStartMenu(self):
        self.ignore("Menu-Start-Ranking")
        self.ignore("Menu-Start-World")
        self.ignore("Menu-Start-Parkour")
        self.menu.hideStartMenu()

    def loadGameOverMenu(self,score):
        self.gameover = Gameover(score)
        taskMgr.doMethodLater(5, self.restartGame,'timer')
        self.show_cursor()

    def loadRankingMenu(self):
        self.accept("Menu-Ranking-Return", self.exitRankingMenu)
        self.exitStartMenu()
        self.classement.showMenu()
        
        self.show_cursor()

    def exitRankingMenu(self):
        print("hidding ranking menu")
        self.ignore("Menu-Ranking-Return")
        self.classement.hideMenu()
        self.loadStartMenu()
        
    def loadGame(self):
        self.exitStartMenu()
        print("Loading game")
        self.state = 'Loading'
        
        if(self.debug == False):
            self.hide_cursor
        self.setLights()

        self.terrain.load()
        self.hud = Hud()
        self.hud.show()
        self.loadEntities()

        #positionate the camera
        if(self.debug == False):
            self.camera.lookAt(self.slime.model)
        # Load Skybox
        Skybox(self.render)

        #register events
        self.ydelta = 300
        self.zdelta = 60
        self.accept("wheel_up", self.camzoom,[True])
        self.accept("wheel_down", self.camzoom,[False])

        #register tasks
        self.task_mgr.add(self.mainLoop, "MainTask")
        if(self.debug == False):
            self.task_mgr.add(self.updateCamera, "CameraTask")
        self.startGame()

    def startGame(self):
        print("Starting game")
        #Load music
        self.music = base.loader.loadMusic("assets/sounds/hytale-ost-kweebec-village.mp3")
        self.music.play()
        self.music.setVolume(0.1)

        self.setFrameRateMeter(True)
        self.state = 'Game'
        
        #init console
        """
        self.userConsole = pc.Console()
        commands = {"restart":self.__init__,
                    "teleport": self.slime.teleport,
                    "color": self.slime.setColor,
                    "stop": self.endGame
                    }
        self.userConsole.create(commands,app=self)
        """
        
    def endGame(self):
        self.state = 'Finished'
        print("SCORE : "+str(Monster.score))
        self.music.stop()
        self.loadGameOverMenu(Monster.score)
        today = date.today()
        name = getpass.getuser()
        """try:
            self.database.insertValues(name.capitalize(),Monster.score,today.strftime("%d/%m/%Y"))
        except:
            pass"""

    def restartGame(self,task):
        os.execl(sys.executable, sys.executable, *sys.argv)

    def loadEntities(self):
        startingPoint = (100, 0, 10)
        self.AIworld = AIWorld(render)
        self.collision = Collision(Monster.monster)
        #terrain, initialPos, slimeModelPath, floorPos, scale, lifePoint, volumicMass, movingSpeed, dt
        self.slime = Slime(self.terrain, startingPoint, "assets/models/slime.egg", 10, 10, 100, 0.01, 5, self.dt, "slime", self.collision) 
        self.spawn = Spawn([self.slime]+Monster.monster, self.terrain, self.AIworld, self.collision)
        self.spawn.spawn()

    def setLights(self):
        sun = DirectionalLight("sun")
        sun.setColor((1, 1, 0.9, 1))
        sun.setScene(render)
        self.sunNp = render.attachNewNode(sun)
        self.sunNp.setPos(-10, -10, 30)
        self.sunNp.lookAt(0,0,0)
        render.setLight(self.sunNp)
    
        alight = AmbientLight('alight')
        alight.setColor((0.35, 0.35, 0.35, 1))
        alnp = render.attachNewNode(alight)
        render.setLight(alnp)

    def mainLoop(self,task):
        if(self.state == "Finished"):
            return
        if(self.slime.lifePoint <= 0 or self.slime.scale >= 1000):
            self.endGame()
        self.AIworld.update()
        self.spawn.spawn()
        for e in [self.slime]+Monster.monster:
            e.update()
        self.hud.setLifeBarValue(self.slime.lifePoint)
        self.hud.setScore(Monster.score)
        return task.cont

    def camzoom(self,decrease):
        if(decrease):
            self.ydelta-=5
            self.zdelta-=1
        else:
            self.ydelta+=5
            self.zdelta+=1

    def updateCamera(self,task):
        if(self.state != 'Game'):
            return
        self.cam.setPos(self.slime.pos.getX(),self.slime.pos.getY()-self.ydelta,self.slime.pos.getZ()+self.zdelta)
        #print("x:"+str(self.camera.getX()-self.slime.pos.getX())+" y:"+str(self.camera.getY()-self.slime.pos.getY())+" z:"+str(self.camera.getZ()))
        #print(self.cam.getHpr())
        self.cam.lookAt(self.slime.model)
        return task.cont
    
    def hide_cursor(self):
        props = WindowProperties()
        props.setCursorHidden(True)
        self.win.requestProperties(props)

    def show_cursor(self):
        """set the Cursor visible again"""
        props = WindowProperties()
        props.setCursorHidden(False)        
        self.win.requestProperties(props)
Ejemplo n.º 12
0
import tkinter as tk
from pathlib import Path

import utils
from config import Config
from gui.analysis import Analysis
from gui.menu import Menu
from gui.styles import configure_styles

if __name__ == "__main__":
    root = tk.Tk()
    root.title("Spotify Analyzer")
    root.iconbitmap(Path("resources") / "icon.ico")
    configure_styles(root)

    config = Config.load("config.toml")
    if config.enable_logs:
        utils.configure_logger("analyzer", "logs.txt")

    analysis = Analysis(root, config=config)
    analysis.gui.pack(expand=True, fill=tk.BOTH, padx=10, pady=10)

    menu = Menu(root, on_load=analysis.on_load)
    root.config(menu=menu)

    root.mainloop()
Ejemplo n.º 13
0
 def __init__(self):
     ShowBase.__init__(self)
     from gui.menu import Menu
     self.m = Menu()
Ejemplo n.º 14
0
class MainMenu(Scene):
    def __init__(self):
        """
        @summary: Initializes a main menu
        """
        Scene.__init__(self)
        self.helpMenu = HelpMenu(self)

        self.menu = Menu()
        self.menu.addWidget(Button("Start", self.runGame))
        self.menu.addWidget(Button("Settings", self.runSettingsMenu))
        self.menu.addWidget(Button("Help", self.runHelpMenu))
        self.menu.addWidget(Button("Quit", self.quitGame))

    def draw(self, surface):
        """
        @param surface: The surface which the main menu should be drawed on
        @summary: draws the main menu on a specified surface
        """
        self.menu.draw(surface)

    def update(self, input):
        """
        @param input: The user input
        @summary: updates the status of the main menu based on the user input
        """
        self.menu.update(input)

    def runGame(self):
        """
        @summary: runs a new game
        """
        game = Game()
        game.mainmenu = self
        SceneManager().setScene(game)

    def runSettingsMenu(self):
        """
        @summary: shows the settings menu
        """
        SceneManager().setScene(SettingsMenu(self))

    def runHelpMenu(self):
        """
        @summary: shows the help screen
        """
        SceneManager().setScene(self.helpMenu)

    def quitGame(self):
        """
        @summary: quits the game
        """
        SceneManager().setScene(None) #No scene, means quit game!