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)
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
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
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
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()
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()