added bouncy example

This commit is contained in:
Luna 2025-05-25 01:32:59 +02:00
parent c5c0c244b9
commit f296a692cd

View file

@ -478,8 +478,10 @@ int main()
vk::Semaphore render_semaphore = device.createSemaphore(semaphore_info); vk::Semaphore render_semaphore = device.createSemaphore(semaphore_info);
vk::Fence next_frame_fence = device.createFence(fence_info); vk::Fence next_frame_fence = device.createFence(fence_info);
glm::vec2 pos = {0.0f, 0.0f}; glm::vec2 pos = {0.0f, 0.0f};
float vel = 0.01f; float vel = 0.008f;
std::vector<vertex> render_vertices = vertices; std::vector<vertex> render_vertices = vertices;
float angle = 0.0f;
float vel2 = 0.005f;
while(!glfwWindowShouldClose(window)) while(!glfwWindowShouldClose(window))
{ {
glfwPollEvents(); glfwPollEvents();
@ -497,14 +499,17 @@ int main()
uint32_t image_index = image_result.value; uint32_t image_index = image_result.value;
vkResetCommandBuffer(command_buffers[0], 0); vkResetCommandBuffer(command_buffers[0], 0);
pos.x += vel; pos.x += vel;
pos.y += vel2;
if (pos.x >= 1.0f || pos.x <= -1.0f) if (pos.x >= 1.0f || pos.x <= -1.0f)
vel = -vel; vel = -vel;
if (pos.y >= 1.0f || pos.y <= -1.0f)
vel2 = -vel2;
for (int i = 0; i < vertices.size(); i++) for (int i = 0; i < vertices.size(); i++)
{ {
render_vertices[i].position = vertices[i].position * rotate(45.0f); render_vertices[i].position = vertices[i].position * rotate(angle);
render_vertices[i].position = glm::vec2(move(pos) * glm::vec3(render_vertices[i].position, 1.0f)); render_vertices[i].position = glm::vec2(move(pos) * glm::vec3(render_vertices[i].position, 1.0f));
} }
angle -= 1.0f;
memcpy(data, render_vertices.data(), buffer_info.size); memcpy(data, render_vertices.data(), buffer_info.size);