コード例 #1
0
ファイル: game.py プロジェクト: nwlasitz/openComp2019
    class __Game:
        def __init__(self, width, height):
            self.window = Window('NeurAlbertaTech', width, height)
            self.window_manager = WindowManager(self.window)

            # Set the window icon
            window_icon = pygame.image.load("neuralbertatech_logo.png")
            pygame.display.set_icon(window_icon)

        def run(self):
            clock = pygame.time.Clock()
            pygame.display.set_mode((0, 0))  #, pygame.FULLSCREEN

            while (1):
                events = pygame.event.get()
                for event in events:
                    if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                        self.window.close()
                        return
                    if event.type == pygame.QUIT:
                        self.window.close()
                        return

                self.window_manager.run(events)
                clock.tick(50)
コード例 #2
0
ファイル: graphics.py プロジェクト: PlainAndDull/AI-Land
class Graphics:
    def __init__(self: 'Graphics') -> 'None':

        self.window = Window(SCALE, TRANSPARENT)
        self.images = {}

        self._add_image("player", "player.bmp")
        self._add_area("player", "up", 0, 0, 16, 16)
        self._add_area("player", "down", 0, 16, 16, 16)
        self._add_area("player", "left", 0, 32, 16, 16)
        self._add_area("player", "right", 0, 48, 16, 16)

        return None

    def draw(self: 'Graphics', layer: 'int', image: 'str', area: 'str',
             x: 'int', y: 'int') -> 'None':

        self.window.draw(layer, self.images[image].get_image(), x * SCALE,
                         y * SCALE, self.images[image].get_area(area))

        return None

    def erase(self: 'Graphics', layer: 'int', image: 'str', area: 'str',
              x: 'int', y: 'int') -> 'None':

        self.window.erase(layer, x * SCALE, y * SCALE,
                          self.images[image].get_area(area).w,
                          self.images[image].get_area(area).h)

        return None

    def update(self: 'Graphics') -> 'None':

        self.window.update()

        return None

    def close(self: 'Graphics') -> 'None':

        self.window.close()

        return None

    def _add_image(self: 'Graphics', image: 'str', path: 'str') -> 'None':

        self.images[image] = Image(path, SCALE, TRANSPARENT)

        return None

    def _add_area(self: 'Graphics', image: 'str', area: 'str', x: 'int',
                  y: 'int', w: 'int', h: 'int') -> 'None':

        self.images[image].add_area(area, x * SCALE, y * SCALE, w * SCALE,
                                    h * SCALE)

        return None
コード例 #3
0
def main():
    app = QtWidgets.QApplication(sys.argv)
    while True:
        w = Window(css.userdata)
        w.show()
        exit_code = app.exec_()
        if exit_code == 888:
            w.tray.exitApp()
            w.close()
        else:
            break
コード例 #4
0
ファイル: main.py プロジェクト: shen962806862/memo
def main():
    QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
    app = QApplication(sys.argv)
    while True:
        w = Window(css.userdata)
        w.show()
        exit_code = app.exec_()
        if exit_code == 888:
            w.tray.exitApp()
            w.close()
        else:
            break
コード例 #5
0
def end_screen(window: Window, ctx: Context, score: str):
    cam = Camera(pos=[0, 6, -12], target=[0, 5, 0])
    ctx.load_models(["plane"])
    ctx.use_vao("default")
    now = glfw.get_time()
    textbox = Text(ctx, [-0.25, 6, -9], "<msg>")
    while glfw.get_time() < now + 4.0:
        ctx.clear()
        if glfw.get_time() < now + 2.0:
            textbox.update(f"Game Over", color=(255, 0, 0, 255))
        else:
            textbox.update(f"Score: {score}")
        textbox.draw(ctx, cam)
        window.swap_buffers()
    window.close()
コード例 #6
0
def main():
    window = Window(w_width,
                    w_height,
                    pyrr.Vector3([0.0, 0.0, 3.0]),
                    FOV=65,
                    near=0.01,
                    far=1000.0)
    obj = ObjLoader(get_uv)

    # First function, load v (according to index) into array
    #obj.load_model_with_v(path_to_v)
    #obj.load_model_with_vt(path_to_vt)
    # Connect v and vt from different files
    #vertices = obj.connect_v_and_vt()

    # Load obj file
    vertices = obj.load_model_with_v_vt_n(path_to_obj)

    shader = Shaders(path_to_vertex_shader, path_to_frame_shader)
    object = Mesh(shader.get_program(), vertices, get_uv)

    # Create Directional light
    light = DirectionalLight(
        pyrr.Vector3([0.7, 0.7, 0.7]),  # Light_colour
        pyrr.Vector3([0.7, 0.7, 0.7]),  # AmbientIntensity
        pyrr.Vector3([0.5, 0.5, 0.5]),  # DiffuseIntensity
        pyrr.Vector3([1.0, 1.0, 1.0]),  # SpecularIntensity
        pyrr.Vector3([0.0, 0.0, 2.0]),  # Direction
        512.0  # Shininess
    )

    def_texture = Texture(path_to_texture)
    shader.useProgram()

    window.clearWindowWithColor()

    # Set variable into shaders
    window.rendern_window(shader)

    # Started position of the mesh
    model = pyrr.matrix44.create_from_translation(pyrr.Vector3([0.0, 0.0,
                                                                0.0]))

    # Set mesh position into shader
    shader.set_model(model)

    # Main loop
    while not window.close():
        glfw.poll_events()
        window.clearWindowWithColor()
        window.clearBuffer()

        # use light
        if not get_uv:
            light.use_light(shader)

        # Set transformation to mesh if you want non- moving object just pass `pyrr.Matrix44.identity()`
        shader.set_model(transformation())

        # Bind texture to current Mesh
        def_texture.use_texture()

        # Render Mesh
        object.RenderMesh()

        if save_data:
            if get_uv:
                save_uv(path_save_data + 'uv_text.npy', w_width, w_height)
            else:
                save_screenshot(path_save_data + 'screen.png', w_width,
                                w_height)

        window.swap_buffers()
    else:
        def_texture.clear_texture()
        window.window_destroy()
        glfw.terminate()