python类DOUBLEBUF的实例源码

program.py 文件源码 项目:LovelySpace 作者: lmb753 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def __init__(self):
        self.parameters = Parameters("Config/default.ini")
        if isfile("Config/config.ini") :
            self.parameters.Load("Config/config.ini")

        # screen mode
        screenMode = self.parameters["screenMode"]
        if(screenMode == Screen_mode.Fullscreen) :
            args = pygame.HWSURFACE | pygame.FULLSCREEN | pygame.DOUBLEBUF
        elif(screenMode == Screen_mode.Borderless) :
            os.environ['SDL_VIDEO_WINDOW_POS'] = '0,0'
            args = pygame.NOFRAME
        else:
            args = 0
            os.environ["SDL_VIDEO_CENTERED"] = "1"

        # window icon
        self.icon = pygame.image.load("Assets/icon.png")
        self.icon = pygame.transform.scale(self.icon, (32, 32))
        pygame.display.set_icon(self.icon)

        # window parameters
        self.width = self.parameters["windowWidth"]
        self.height = self.parameters["windowHeight"]

        # some managers and important things
        self.screen = pygame.display.set_mode((self.width, self.height), args)
        pygame.display.set_caption("Lovely Space")
        self.clock = pygame.time.Clock()
        self.input = input.Input(self)
        self.audio = audio.Audio()
        self.size = size.Size(self.width, self.height, 1920, 1080)

        # a random font
        self.fpsFont = pygame.font.SysFont("Arial", 25)

        # drunk shit
        self.iniPosition = pygame.math.Vector2(0, 200)
        self.drunkY = 1
        self.drunkX = 1

        # pause things
        self.pause = None
        self.isPaused = False

        self.mode = titlescreen.TitleScreen(self)
        #self.mode = game.Game(self)
display.py 文件源码 项目:ATLeS 作者: liffiton 项目源码 文件源码 阅读 39 收藏 0 点赞 0 评论 0
def _get_screen(xwin=False):
    """Initializes a new pygame screen using the framebuffer"""
    if display_mocked:
        xwin = True

    # Based on "Python GUI in Linux frame buffer"
    # http://www.karoltomala.com/blog/?p=679
    disp_no = os.getenv("DISPLAY")
    if disp_no:
        logging.info("Running under X display %s", disp_no)

    # Make sure that SDL_VIDEODRIVER is set
    if xwin:
        driver = 'x11'
    else:
        driver = 'directfb'   # alternatives: 'fbcon', 'svgalib'
    if not os.getenv('SDL_VIDEODRIVER'):
        os.putenv('SDL_VIDEODRIVER', driver)

    try:
        pygame.display.init()
    except pygame.error:
        logging.exception("Display init failed using driver: %s", driver)
        raise

    if xwin:
        size = (320, 200)
        options = 0
    else:
        # fullscreen
        info = pygame.display.Info()
        size = (info.current_w, info.current_h)
        logging.info("Framebuffer size: %d x %d", size[0], size[1])
        options = pygame.FULLSCREEN | pygame.DOUBLEBUF
    screen = pygame.display.set_mode(size, options)

    # Clear the screen to start
    screen.fill((0, 0, 0))
    pygame.mouse.set_visible(False)
    # Render the screen
    pygame.display.update()

    return screen
demo.py 文件源码 项目:TonsleyLEDManager 作者: JonnoFTW 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def show(Runner, arg=None, fps=24, rows=17, cols=165, scale=8, withArgs=False):
    import pygame, sys
    FPS = fps
    fpsClock = pygame.time.Clock()

    board_dimensions = (cols, rows)
    #yep
    disp_size = (cols * scale, rows * scale)
    pygame.init()
    screen_opts =  pygame.RESIZABLE | pygame.DOUBLEBUF
    screen = pygame.display.set_mode(disp_size, screen_opts)
    changed = False
    if arg is None:
        runner = Runner(board_dimensions)
    else:
        runner = Runner(board_dimensions, arg)
    font = pygame.font.Font('slkscr.ttf', 32)
    while True:
        events = pygame.event.get()
        for e in events:
            if e.type == pygame.QUIT:
                sys.exit()
            if e.type == pygame.VIDEORESIZE:
                disp_size = e.dict['size']
                screen = pygame.display.set_mode(disp_size, screen_opts)
        screen.fill((0, 0, 0))
        # draw the pixels
        txts = ["FPS: {0:.2f}".format(fpsClock.get_fps())]
        if withArgs:
            pixels, txt = runner.run(events)
            txts.append(txt)
        else:
            pixels = runner.run()
            if type(pixels) is tuple:
                pixels, txt = pixels
                txts.append(txt)

        temp_surface = pygame.Surface(board_dimensions)
        pygame.surfarray.blit_array(temp_surface, pixels)
        pygame.transform.scale(temp_surface, disp_size, screen)
        i = 1
        for txt in txts:
            for line in txt.splitlines():
                screen.blit(font.render(line.replace('[', '').replace(']', '').strip(), 1, (255, 255, 255)),
                            (30, 30 * i))
                i += 1

        pygame.display.flip()
        fpsClock.tick(FPS)
pygame_.py 文件源码 项目:pyimgui 作者: swistakm 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def main():
    pygame.init()

    size = 800, 600

    pygame.display.set_mode(size, pygame.DOUBLEBUF | pygame.OPENGL)

    io = imgui.get_io()
    io.fonts.add_font_default()
    io.display_size = size

    renderer = PygameRenderer()

    while 1:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

            renderer.process_event(event)

        imgui.new_frame()

        if imgui.begin_main_menu_bar():
            if imgui.begin_menu("File", True):

                clicked_quit, selected_quit = imgui.menu_item(
                    "Quit", 'Cmd+Q', False, True
                )

                if clicked_quit:
                    exit(1)

                imgui.end_menu()
            imgui.end_main_menu_bar()

        imgui.show_test_window()

        imgui.begin("Custom window", True)
        imgui.text("Bar")
        imgui.text_colored("Eggs", 0.2, 1., 0.)
        imgui.end()

        # note: cannot use screen.fill((1, 1, 1)) because pygame's screen
        #       does not support fill() on OpenGL sufraces
        gl.glClearColor(1, 1, 1, 1)
        gl.glClear(gl.GL_COLOR_BUFFER_BIT)
        imgui.render()

        pygame.display.flip()
PyConKinectHowOld.py 文件源码 项目:KinectHowOld 作者: crwilcox 项目源码 文件源码 阅读 33 收藏 0 点赞 0 评论 0
def __init__(self):
        pygame.init()


        # Used to manage how fast the screen updates
        self._clock = pygame.time.Clock()

        # Set the width and height of the screen [width, height]
        self._infoObject = pygame.display.Info()
        self._screen = pygame.display.set_mode(
            (self._infoObject.current_w >> 1, self._infoObject.current_h >> 1),
            pygame.HWSURFACE | pygame.DOUBLEBUF | pygame.RESIZABLE, 32
        )

        pygame.display.set_caption("Guess your Age!")

        # Loop until the user clicks the close button.
        self._done = False

        # Kinect runtime object, we want only color and body frames
        if PyKinectRuntime and USE_KINECT:
            self._kinect = PyKinectRuntime.PyKinectRuntime(
                PyKV2.FrameSourceTypes_Color |
                PyKV2.FrameSourceTypes_Body
            )
            frame_dimension = (
                self._kinect.color_frame_desc.Width,
                self._kinect.color_frame_desc.Height
            )
        else:
            self._kinect = None
            frame_dimension = 800, 600

        # back buffer surface for getting Kinect color frames, 32bit color,
        # width and height equal to the Kinect color frame size
        self._frame_surface = pygame.Surface(frame_dimension, 0, 32)

        # here we will store skeleton data
        self._bodies = None
        self._stored_bodies = {}

        self._faces = []
        self._face_bodies = []

        self._update_oxford = 0
        self.python_logo_image = pygame.image.load('pylogo.png')
        self.msft_logo_image = pygame.image.load('microsoftlogo.png')

        self.bg_color = pygame.Color(55, 117, 169)
textscroller_vertical.py 文件源码 项目:mini_rpg 作者: paolo-perfahl 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def __init__(self, text, width=640, height=400, fps=30, textcolor=(0,0,255), 
                 bgcolor=(255,255,255), font=('mono', 24, True), new_init=True, bg_filename=None):
        """Initialize pygame, window, background, font,...
           default arguments 
        """

        #pygame.mixer.pre_init(44100, -16, 2, 2048) 

        if new_init:
            pygame.init()

        #jump = pygame.mixer.Sound(os.path.join('data','jump.wav'))  #load sound
        #self.sound1 = pygame.mixer.Sound(os.path.join('data','Pickup_Coin.wav'))
        #self.sound2 = pygame.mixer.Sound(os.path.join('data','Jump.wav'))
        #self.sound3 = pygame.mixer.Sound(os.path.join('data','mix.wav'))
        pygame.display.set_caption("Press ESC to quit, curosr keys / PgUp, PgDown to scroll")
        self.text = text
        self.bgcolor = bgcolor
        self.textcolor = textcolor
        self.lines = text.split("\n")
        self.width = width
        self.height = height
        self.screen = pygame.display.set_mode((self.width, self.height), pygame.DOUBLEBUF)
        self.background = pygame.Surface(self.screen.get_size()).convert()  
        if bg_filename is None:
           self.background.fill(self.bgcolor) # fill background white
        else:
           try:
               print("i try to load:", bg_filename)
               self.background = pygame.image.load(bg_filename)
               self.background = pygame.transform.scale(self.background, (self.width, self.height))
           except:
                print("exception while processing:", bg_filename)
                self.background.fill(self.bgcolor) # fill background white
        self.clock = pygame.time.Clock()
        self.fps = fps
        self.playtime = 0.0
        self.offset_y = self.height - 10
        self.x = 100
        self.dy = 50
        self.text_height = len(self.lines) * self.dy
        self.bold = font[2]
        self.font = pygame.font.SysFont(font[0], font[1], self.bold)


问题


面经


文章

微信
公众号

扫码关注公众号