int main() { Window window; Camera camera(window.GetAspectRatio(), glm::vec3(2.0, 2.0, 1.0)); Mesh* sphereMesh = CreateMesh("sphere.obj", "sphere"); Shader defaultShader("Shaders/defaultShader.vert", "Shaders/defaultShader.frag", "defaultShader"); SetupMesh(sphereMesh, defaultShader); do { window.Clear(); DrawMesh(*sphereMesh, camera, defaultShader); camera.front = sphereMesh->position; sphereMesh->rotY -= 0.016; { if (glfwGetKey(window.GetWindowInstance(), GLFW_KEY_W) == GLFW_PRESS) { sphereMesh->position.x -= 0.16; } else if (glfwGetKey(window.GetWindowInstance(), GLFW_KEY_S) == GLFW_PRESS) { sphereMesh->position.x += 0.16; } if (glfwGetKey(window.GetWindowInstance(), GLFW_KEY_A) == GLFW_PRESS) { sphereMesh->position.z += 0.16; } else if (glfwGetKey(window.GetWindowInstance(), GLFW_KEY_D) == GLFW_PRESS) { sphereMesh->position.z -= 0.16; } } window.Update(); } while (!window.Closed() && glfwGetKey(window.GetWindowInstance(), GLFW_KEY_ESCAPE) != GLFW_PRESS); delete sphereMesh; }
int main(int argv, char** argc) { Window win; win.Init("MyWindow"); SDL_Texture *texBackground = win.LoadImage("../res/background.png"); win.Clear(); win.Draw(texBackground,win.Box()); win.Present(); Event evt; evt.AddCallback(SDL_KEYDOWN,funKeyDown); evt.StartEvent(); return 0; }
int UpdateMenu(Window &App) { App.FPS =60; Uint8 *Key; SDL_Event Event; bool Running = true; while(Running) { Key = SDL_GetKeyState(NULL); while( SDL_PollEvent(&Event) ) { if(Event.type == SDL_QUIT) { Running = false; } } if( Key[SDLK_SPACE] ) { Running = false; return 1; } if( Key[SDLK_ESCAPE]) { return 20; } App.LimitFramerate(); App.Flip(); App.RenderText(); App.Clear(); } return 20; }
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { Engine::Init(); Input input; input.Init(); Window window; window.Init(800, 600, "killerg2d"); ResMgr resmgr; resmgr.Init(); FrameRate framerate; framerate.Init(600); Timer timer; timer.Init(); SpiritAnimate spirit; spirit.Init("abc.txt"); int x = 100, y = 100; int model = 0; while( !input.IsKeyDown(SDLK_ESCAPE) ) { timer.Update(); input.Update(); if( input.IsKeyDown(SDLK_LEFT) ) x-=1; if( input.IsKeyDown(SDLK_RIGHT) ) x+=1; if( input.IsKeyDown(SDLK_UP) ) y-=1; if( input.IsKeyDown(SDLK_DOWN) ) y+=1; if( input.IsKeyDown(SDLK_x) ) spirit.Play(); if( input.IsKeyDown(SDLK_y) ) spirit.Stop(); spirit.Update(timer.GetIntervalF()); window.Clear(); spirit.Draw(&window, x, y); window.Flush(); framerate.WaitFrame(); } timer.Destroy(); framerate.Destroy(); resmgr.Destroy(); window.Destroy(); input.Destroy(); Engine::Destroy(); }
int main(int argc, char *argv[]) #endif { LOG_DEBUG("Opening window ..."); Window window = Window("Snowflake Sandbox", VideoMode(1280, 768)); Color clearColor = Color(50, 80, 80, 255); GLfloat vertexBufferData[] = { // Front face -1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, 1.0, // Back face -1.0, -1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0, -1.0, 1.0, -1.0, -1.0, // Top face -1.0, 1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, // Bottom face -1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, -1.0, -1.0, 1.0, // Right face 1.0, -1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, // Left face -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0, -1.0, 1.0, -1.0 }; GLfloat colorBufferData[] = { 0.583f, 0.771f, 0.014f, 0.609f, 0.115f, 0.436f, 0.327f, 0.483f, 0.844f, 0.822f, 0.569f, 0.201f, 0.435f, 0.602f, 0.223f, 0.310f, 0.747f, 0.185f, 0.597f, 0.770f, 0.761f, 0.559f, 0.436f, 0.730f, 0.359f, 0.583f, 0.152f, 0.483f, 0.596f, 0.789f, 0.559f, 0.861f, 0.639f, 0.195f, 0.548f, 0.859f, 0.014f, 0.184f, 0.576f, 0.771f, 0.328f, 0.970f, 0.406f, 0.615f, 0.116f, 0.676f, 0.977f, 0.133f, 0.971f, 0.572f, 0.833f, 0.140f, 0.616f, 0.489f, 0.997f, 0.513f, 0.064f, 0.945f, 0.719f, 0.592f, 0.543f, 0.021f, 0.978f, 0.279f, 0.317f, 0.505f, 0.167f, 0.620f, 0.077f, 0.347f, 0.857f, 0.137f, 0.055f, 0.953f, 0.042f, 0.714f, 0.505f, 0.345f, 0.783f, 0.290f, 0.734f, 0.722f, 0.645f, 0.174f, 0.302f, 0.455f, 0.848f, 0.225f, 0.587f, 0.040f, 0.517f, 0.713f, 0.338f, 0.053f, 0.959f, 0.120f, 0.393f, 0.621f, 0.362f, 0.673f, 0.211f, 0.457f, 0.820f, 0.883f, 0.371f, 0.982f, 0.099f, 0.879f }; GLushort indicesData[] = { 0, 1, 2, 0, 2, 3, // front 4, 5, 6, 4, 6, 7, // back 8, 9, 10, 8, 10, 11, // top 12, 13, 14, 12, 14, 15, // bottom 16, 17, 18, 16, 18, 19, // right 20, 21, 22, 20, 22, 23 // left }; VertexArray cube, cube2; IndexBuffer ibo(indicesData, std::end(indicesData) - std::begin(indicesData)); cube.AddBuffer(sfnew Buffer(vertexBufferData, sizeof(vertexBufferData), 3), 0); cube.AddBuffer(sfnew Buffer(colorBufferData, sizeof(colorBufferData), 3), 1); cube2.AddBuffer(sfnew Buffer(vertexBufferData, sizeof(vertexBufferData), 3), 0); cube2.AddBuffer(sfnew Buffer(colorBufferData, sizeof(colorBufferData), 3), 1); Matrix4 projection = Matrix4::Perspective(100.0f, window.GetSize().X / window.GetSize().Y, 0.1f, 100.f); Matrix4 view = Matrix4::LookAt(Vector3(4, 3, 3), Vector3(0, 0, 0), Vector3(0, 0.8f, 0)); Matrix4 model = Matrix4(1.0f); Matrix4 mvp = projection * view * model; Shader shader = Shader("tri_vertex.glsl", "tri_fragment.glsl"); shader.Enable(); while (!window.ShouldClose()) { window.Clear(clearColor); // Render here cube.Bind(); ibo.Bind(); model = Matrix4::Translation(Vector3(0, 0, 0)); mvp = projection * view * model; shader.SetUniformMat4("MVP", mvp); glDrawElements(GL_TRIANGLES, ibo.GetCount(), GL_UNSIGNED_SHORT, 0); ibo.Bind(); cube.Unbind(); cube2.Bind(); ibo.Bind(); model = Matrix4::Translation(Vector3(4, 0, 0)); mvp = projection * view * model; shader.SetUniformMat4("MVP", mvp); glDrawElements(GL_TRIANGLES, ibo.GetCount(), GL_UNSIGNED_SHORT, 0); ibo.Bind(); cube2.Unbind(); window.Display(); window.Update(); } window.Close(); #if _DEBUG LOG_DEBUG("PAUSING NOW!"); system("PAUSE"); #endif return EXIT_SUCCESS; }
JNIEXPORT void JNICALL Java_sp_app_Window_native_1Clear (JNIEnv *env, jclass cls, jlong handler) { Window* window = getHandle<Window>(handler); window->Clear(); }
int BoreCastleMain() { const int width = 1920 / 2; const int height = 1080 / 2; Window* window = Window::Create("Hello World!", width, height); window->OnKeyEvent(window) = OnKey; Shanoa shanoa({130, height - 128 + 2 - 24}, window); Zone* zone = CreateTestZone(width, height, window); Sprite sprite_energy(24, window->LoadImage(DATA_PATH "Sprite.png"), 60); Sprite sprite_elskeletto(2, window->LoadImage(DATA_PATH "ElSkeletto/ElSkeletto.png"), 5); Point elskeletto_position = {450, window->Height() - 128 - 32}; Point zone_offset; Rate rate(60); Shape s1(shanoa.Rect()); Shape s2({elskeletto_position, sprite_elskeletto.Size()}); //Obvious memory leak auto quartz = [](Shape& shape) { auto& hs = shape.size / 2; //half size shape.AddShape(new Shape({{shape.position}, hs})); shape.AddShape(new Shape({{shape.position.x + hs.x, shape.position.y}, hs})); shape.AddShape(new Shape({{shape.position.x, shape.position.y + hs.y}, hs})); shape.AddShape(new Shape({{shape.position.x + hs.x, shape.position.y + hs.y}, hs})); }; quartz(s1); quartz(s2); s1.MoveTo(shanoa.Position()); s2.MoveTo(elskeletto_position); while(window->Update()) { for(int i = rate.Update(); i > 0; --i) { if(GetKeyState(Keys::KeyF)) shanoa.Attack(); if(GetKeyState(Keys::KeySpace)) shanoa.Jump(); if(GetKeyState(Keys::KeyLeft)) { shanoa.MoveLeft(); --zone_offset; } else if(GetKeyState(Keys::KeyRight)) { shanoa.MoveRight(); ++zone_offset; } else shanoa.Stand(); shanoa.Update(); s1.MoveTo(shanoa.Position()); s1.Intersect(s2); } window->BeginDraw(false); window->Clear({0, 0, 0x20}); zone->RenderBackground(window); sprite_energy.Draw({530, 55}, window); s1.Render(*window); s2.Render(*window); sprite_elskeletto.Draw(elskeletto_position, window); shanoa.Render(window); zone->RenderForeground(window); window->EndDraw(); zone->SetOffset(zone_offset); } delete zone; delete window; return 0; }