def main(): glfw.setErrorCallback(error_callback) print("GL:", gl) glfw.init() glfw.windowHint(glfw.CONTEXT_VERSION_MAJOR, 3) glfw.windowHint(glfw.CONTEXT_VERSION_MINOR, 3) glfw.windowHint(glfw.OPENGL_PROFILE, glfw.OPENGL_CORE_PROFILE) glfw.windowHint(glfw.RESIZABLE, gl.FALSE) glfw.windowHint(glfw.OPENGL_FORWARD_COMPAT, 1) window = glfw.createWindow(WIDTH, HEIGHT, "LearnOpenGL") if window is None: print('could not open window.') glfw.terminate() sys.exit() window.makeContextCurrent() # window.setInputMode(glfw.CURSOR, glfw.CURSOR_DISABLED) window.setKeyCallback(key_callback) gl.init() print("IN MODULE:", gl.getError) err = gl.getError() if err: print("WINDOW OPEN ERROR:", err) gl.enable(gl.DEPTH_TEST) gl.enable(gl.BLEND) gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA) # set up our application nodebuilder = NodeBuilder() # TODO: this stuff should happen automatically. debugdraw.register_with_nodebuilder(nodebuilder) transformnode.register_with_nodebuilder(nodebuilder) physicsnode.register_with_nodebuilder(nodebuilder) # set up scene = physicsnode.SceneNode(name='physics_scene') # scenenode.SceneNode(name='scene') debugdraw_renderer = debugdraw.RendererNode(name='debugdraw_renderer', parent=scene) sprite_renderer = spritenode.RendererNode(name="sprite_renderer", parent=scene) # space = create_wheelchair_guy(scene) # TODO: finish debugging the get_relative_path method... # print("wheel_suspension -> wheel_body", wheel_suspension.get_relative_path(wheel_body)) # print("wheel_suspension -> body", wheel_suspension.get_relative_path(body)) # print("wheel_suspension -> player", wheel_suspension.get_relative_path(player)) # print("wheel_suspension -> player_body", wheel_suspension.get_relative_path(body)) # # print(wheel_suspension.get_node('../../../..')) # assert(wheel_suspension.get_node('..') is wheel) # p = '../../../..' # print("P", wheel_suspension.get_node(p)) # assert(wheel_suspension.get_node(p) is player) # assert(wheel_suspension.get_node('../wheel_body') is wheel_body) # p = '../../../player_body' # print(wheel_suspension.get_node(p)) # assert(wheel_suspension.get_node(p) is body) while not window.shouldClose(): glfw.pollEvents() framebuffer_width, framebuffer_height = window.getFramebufferSize() gl.viewport(0, 0, framebuffer_width, framebuffer_height) gl.clearColor(0.2, 0.3, 0.3, 1.0) gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT) gl.enable(gl.BLEND) gl.enable(gl.DEPTH_TEST) sprite_renderer.draw() gl.disable(gl.BLEND) gl.disable(gl.DEPTH_TEST) debugdraw_renderer.draw() # draw the debug draw scene on top of the other stuff. scene.step(1.0/30.0, iterations=10) #print(scene.get_node('transform').position, scene.get_node('transform').angle) window.swapBuffers()