예제 #1
0
파일: console.py 프로젝트: gdos/parole
def __init():
    """
    Initializes the console module. Automatically called during engine 
    startup - user code shouldn't need to use this function.
    """
    global frame, stdout, stderr, logHandler, interpreter, history, historyPos
    
    parole.conf.notify(__onConfigChange, True)

    # Initialize the console command history
    history = []
    historyPos = 0

    # Create the console frame shader. 
    frame = ConsoleFrame(parole.conf.console.height,
            resource.getFont('fonts/monaco.ttf', 10), parole.conf.console.ps1,
            parole.conf.console.ps2)

    # Write the intro banner to the console
    frame.write(banner)
    frame.flush()

    # Start logging to the console (INFO level)
    parole.info('Begin logging to console...')
    logHandler = logging.StreamHandler(frame)
    logHandler.setLevel(logging.INFO)
    logHandler.setFormatter(logging.Formatter(\
        '%(levelname)s: %(message)s'))
    logging.getLogger().addHandler(logHandler)

    # Create the actual interpreter
    #stderr = sys.stderr
    #sys.stderr = frame
    stdout = sys.stdout
    sys.stdout = frame
    parole.info('Setting up console Python interpreter...')
    interpreter = ConsoleInterpreter()

    parole.info('Loading console history file...')
    try:
        hf = open(historyFile, 'r')
        history = [l[:len(l)-1] for l in hf.readlines() if len(l) > 1]
        historyPos = len(history)
        hf.close()
    except:
        parole.warn('Unable to open/load history file "%s".', historyFile)
예제 #2
0
def __init():
    """
    Initializes the console module. Automatically called during engine 
    startup - user code shouldn't need to use this function.
    """
    global frame, stdout, stderr, logHandler, interpreter, history, historyPos

    parole.conf.notify(__onConfigChange, True)

    # Initialize the console command history
    history = []
    historyPos = 0

    # Create the console frame shader.
    frame = ConsoleFrame(parole.conf.console.height,
                         resource.getFont('fonts/monaco.ttf', 10),
                         parole.conf.console.ps1, parole.conf.console.ps2)

    # Write the intro banner to the console
    frame.write(banner)
    frame.flush()

    # Start logging to the console (INFO level)
    parole.info('Begin logging to console...')
    logHandler = logging.StreamHandler(frame)
    logHandler.setLevel(logging.INFO)
    logHandler.setFormatter(logging.Formatter(\
        '%(levelname)s: %(message)s'))
    logging.getLogger().addHandler(logHandler)

    # Create the actual interpreter
    #stderr = sys.stderr
    #sys.stderr = frame
    stdout = sys.stdout
    sys.stdout = frame
    parole.info('Setting up console Python interpreter...')
    interpreter = ConsoleInterpreter()

    parole.info('Loading console history file...')
    try:
        hf = open(historyFile, 'r')
        history = [l[:len(l) - 1] for l in hf.readlines() if len(l) > 1]
        historyPos = len(history)
        hf.close()
    except:
        parole.warn('Unable to open/load history file "%s".', historyFile)
예제 #3
0
파일: splash.py 프로젝트: gdos/parole
    def __init__(self):
        super(SplashShader, self).__init__("SplashShader",
                size=display.getSurface().get_size())
        self.startTime = 0
        self.endTime = 0

        self.goldSound = resource.getSound('sounds/enginesplash.wav')

        # Background field
        self.pBG = shader.ColorField((255,255,255), self.size)
        self.addPass(self.pBG, pos=(0,0))

        font = resource.getFont('fonts/monaco.ttf', 12)

        # Copyright
        gray = (108,108,108)
        copyright = "Engine copyright 2012 by Max Bane"
        copyrightSize = font.size(copyright)
        copyrightPass = shader.TextBlockPass(font, gray,
                text=copyright)
        copyrightPos = (self.size[0]/2 - copyrightSize[0]/2,
                        self.size[1] - copyrightSize[1])
        self.addPass(copyrightPass, pos=copyrightPos)

        font = resource.getFont('fonts/monaco.ttf', 18)
        self.font = font

        # P A R O L E - initial positions
        paroleSize = font.size("P A R O L E")
        spaceWidth = font.size(" ")[0]
        parolePos = (self.size[0]/2 - paroleSize[0]/2, 
                     self.size[1]/4 - paroleSize[1])
        green = (0,128,0)
        pos = list(parolePos)
        self.pStarts = {}
        self.pP = shader.TextBlockPass(font, green, text="P")
        self.addPass(self.pP, pos=tuple(pos))
        self.pStarts[self.pP] = tuple(pos)
        pos[0] += font.size("P")[0] + spaceWidth
        self.pA = shader.TextBlockPass(font, green, text="A")
        self.addPass(self.pA, pos=tuple(pos))
        self.pStarts[self.pA] = tuple(pos)
        pos[0] += font.size("A")[0] + spaceWidth
        self.pR = shader.TextBlockPass(font, green, text="R")
        self.addPass(self.pR, pos=tuple(pos))
        self.pStarts[self.pR] = tuple(pos)
        pos[0] += font.size("R")[0] + spaceWidth
        self.pO = shader.TextBlockPass(font, green, text="O")
        self.addPass(self.pO, pos=tuple(pos))
        self.pStarts[self.pO] = tuple(pos)
        pos[0] += font.size("O")[0] + spaceWidth
        self.pL = shader.TextBlockPass(font, green, text="L")
        self.addPass(self.pL, pos=tuple(pos))
        self.pStarts[self.pL] = tuple(pos)
        pos[0] += font.size("L")[0] + spaceWidth
        self.pE = shader.TextBlockPass(font, green, text="E")
        self.addPass(self.pE, pos=tuple(pos))
        self.pStarts[self.pE] = tuple(pos)

        # title
        self.pDests = {}
        smoke = (64, 64, 64)
        titleSize = font.size("Python Advanced ROgueLike Engine")
        self.titleSize = titleSize
        pos = [self.size[0]/2 - titleSize[0]/2,
               self.size[1]/2 - titleSize[1]]
        self.titlePos = tuple(pos)
        titlePasses = {}
        self.pDests[self.pP] = tuple(pos)
        pos[0] += font.size("P")[0]
        titlePasses[shader.TextBlockPass(font, smoke, text="ython ")] = \
            tuple(pos)
        pos[0] += font.size("ython ")[0]
        self.pDests[self.pA] = tuple(pos)
        pos[0] += font.size("A")[0]
        titlePasses[shader.TextBlockPass(font, smoke, text="dvanced ")] = \
            tuple(pos)
        pos[0] += font.size("dvanced ")[0]
        self.pDests[self.pR] = tuple(pos)
        pos[0] += font.size("R")[0]
        self.pDests[self.pO] = tuple(pos)
        pos[0] += font.size("O")[0]
        titlePasses[shader.TextBlockPass(font, smoke, text="gue")] = \
            tuple(pos)
        pos[0] += font.size("gue")[0]
        self.pDests[self.pL] = tuple(pos)
        pos[0] += font.size("L")[0]
        titlePasses[shader.TextBlockPass(font, smoke, text="ike ")] = \
            tuple(pos)
        pos[0] += font.size("ike ")[0]
        self.pDests[self.pE] = tuple(pos)
        pos[0] += font.size("E")[0]
        titlePasses[shader.TextBlockPass(font, smoke, text="ngine")] = \
            tuple(pos)
        self.titlePasses = titlePasses

        self.addUpdateFunc(SplashShader.updateSplash)
        self.touch()

        self.movementDone = False
        self.gold = False
        self.fadeAlpha = 0
        self.fader = shader.ColorField((0,0,0, 0), self.size)
예제 #4
0
    def __init__(self):
        super(SplashShader,
              self).__init__("SplashShader",
                             size=display.getSurface().get_size())
        self.startTime = 0
        self.endTime = 0

        self.goldSound = resource.getSound('sounds/enginesplash.wav')

        # Background field
        self.pBG = shader.ColorField((255, 255, 255), self.size)
        self.addPass(self.pBG, pos=(0, 0))

        font = resource.getFont('fonts/monaco.ttf', 12)

        # Copyright
        gray = (108, 108, 108)
        copyright = "Engine copyright 2012 by Max Bane"
        copyrightSize = font.size(copyright)
        copyrightPass = shader.TextBlockPass(font, gray, text=copyright)
        copyrightPos = (self.size[0] / 2 - copyrightSize[0] / 2,
                        self.size[1] - copyrightSize[1])
        self.addPass(copyrightPass, pos=copyrightPos)

        font = resource.getFont('fonts/monaco.ttf', 18)
        self.font = font

        # P A R O L E - initial positions
        paroleSize = font.size("P A R O L E")
        spaceWidth = font.size(" ")[0]
        parolePos = (self.size[0] / 2 - paroleSize[0] / 2,
                     self.size[1] / 4 - paroleSize[1])
        green = (0, 128, 0)
        pos = list(parolePos)
        self.pStarts = {}
        self.pP = shader.TextBlockPass(font, green, text="P")
        self.addPass(self.pP, pos=tuple(pos))
        self.pStarts[self.pP] = tuple(pos)
        pos[0] += font.size("P")[0] + spaceWidth
        self.pA = shader.TextBlockPass(font, green, text="A")
        self.addPass(self.pA, pos=tuple(pos))
        self.pStarts[self.pA] = tuple(pos)
        pos[0] += font.size("A")[0] + spaceWidth
        self.pR = shader.TextBlockPass(font, green, text="R")
        self.addPass(self.pR, pos=tuple(pos))
        self.pStarts[self.pR] = tuple(pos)
        pos[0] += font.size("R")[0] + spaceWidth
        self.pO = shader.TextBlockPass(font, green, text="O")
        self.addPass(self.pO, pos=tuple(pos))
        self.pStarts[self.pO] = tuple(pos)
        pos[0] += font.size("O")[0] + spaceWidth
        self.pL = shader.TextBlockPass(font, green, text="L")
        self.addPass(self.pL, pos=tuple(pos))
        self.pStarts[self.pL] = tuple(pos)
        pos[0] += font.size("L")[0] + spaceWidth
        self.pE = shader.TextBlockPass(font, green, text="E")
        self.addPass(self.pE, pos=tuple(pos))
        self.pStarts[self.pE] = tuple(pos)

        # title
        self.pDests = {}
        smoke = (64, 64, 64)
        titleSize = font.size("Python Advanced ROgueLike Engine")
        self.titleSize = titleSize
        pos = [
            self.size[0] / 2 - titleSize[0] / 2,
            self.size[1] / 2 - titleSize[1]
        ]
        self.titlePos = tuple(pos)
        titlePasses = {}
        self.pDests[self.pP] = tuple(pos)
        pos[0] += font.size("P")[0]
        titlePasses[shader.TextBlockPass(font, smoke, text="ython ")] = \
            tuple(pos)
        pos[0] += font.size("ython ")[0]
        self.pDests[self.pA] = tuple(pos)
        pos[0] += font.size("A")[0]
        titlePasses[shader.TextBlockPass(font, smoke, text="dvanced ")] = \
            tuple(pos)
        pos[0] += font.size("dvanced ")[0]
        self.pDests[self.pR] = tuple(pos)
        pos[0] += font.size("R")[0]
        self.pDests[self.pO] = tuple(pos)
        pos[0] += font.size("O")[0]
        titlePasses[shader.TextBlockPass(font, smoke, text="gue")] = \
            tuple(pos)
        pos[0] += font.size("gue")[0]
        self.pDests[self.pL] = tuple(pos)
        pos[0] += font.size("L")[0]
        titlePasses[shader.TextBlockPass(font, smoke, text="ike ")] = \
            tuple(pos)
        pos[0] += font.size("ike ")[0]
        self.pDests[self.pE] = tuple(pos)
        pos[0] += font.size("E")[0]
        titlePasses[shader.TextBlockPass(font, smoke, text="ngine")] = \
            tuple(pos)
        self.titlePasses = titlePasses

        self.addUpdateFunc(SplashShader.updateSplash)
        self.touch()

        self.movementDone = False
        self.gold = False
        self.fadeAlpha = 0
        self.fader = shader.ColorField((0, 0, 0, 0), self.size)