Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local WIDTH = 800
- local HEIGHT = 600
- local shader_code = [[
- extern vec2 screen_dims;
- extern number time;
- number pi = atan(1.0) * 4.0;
- vec4 effect(vec4 color, Image image, vec2 uvs, vec2 screen_coords) {
- vec2 screen_coords_norm = vec2(
- screen_coords.x / screen_dims.x,
- screen_coords.y / screen_dims.y
- );
- number y = 40 + sin(4.18 + 1.9 * time + pi * 8.3 * screen_coords_norm.x) * 10 +
- sin(screen_coords_norm.x * pi + time * 0.5) * cos(1.33 + pi * screen_coords_norm.x + pi * 0.7 * time) * 5;
- number y2 = 33 + y + sin(3.58 + 1.6 * time + pi * 5.2 * screen_coords_norm.x) * 11 +
- sin(time * 0.9) * cos(2.33 + pi * screen_coords_norm.x + pi * 1.9 * time) * 6;
- number y3 = 37 + y2 + sin(1.88 + 1.7 * time + pi * 6.5 * screen_coords_norm.x) * 12 +
- sin(time * 0.95) * cos(2.33 + pi * 2 * screen_coords_norm.x + pi * 1.2 * time) * 8;
- number y4 = 38 + y3 + sin(9.66 + 1.4 * time + pi * 5.1 * screen_coords_norm.x) * 10 +
- sin(time) * cos(5.33 + pi * 2 * screen_coords_norm.x + pi * 1.2 * time) * 12;
- number y5 = 44 + y4 + sin(1.66 + 2.4 * time + pi * 3.9 * screen_coords_norm.x) * 8 +
- sin(time * 0.8) * cos(1.88 + pi * 2.3 * screen_coords_norm.x + pi * 1.9 * time) * 11;
- number y6 = 37 + y5 + sin(2.11 + 3.0 * time + pi * 2.7 * screen_coords_norm.x) * 5 +
- sin(time * 0.82) * cos(6.19 + pi * 3.33 * screen_coords_norm.x + pi * 2.4 * time) * 14;
- if (screen_coords.y < screen_dims.y - y6) {
- return vec4(0.0, 0.0, 0.6, 1.0);
- } else if (screen_coords.y < screen_dims.y - y5) {
- return vec4(0.0, 0.0, 0.65, 1.0);
- } else if (screen_coords.y < screen_dims.y - y4) {
- return vec4(0.0, 0.0, 0.7, 1.0);
- } else if (screen_coords.y < screen_dims.y - y3) {
- return vec4(0.0, 0.0, 0.75, 1.0);
- } else if (screen_coords.y < screen_dims.y - y2) {
- return vec4(0.0, 0.0, 0.8, 1.0);
- } else if (screen_coords.y < screen_dims.y - y) {
- return vec4(0.0, 0.0, 0.85, 1.0);
- } else {
- return vec4(0.0, 0.0, 0.9, 1.0);
- }
- }
- ]]
- function love.load()
- -- image_data = love.image.newImageData(WIDTH, HEIGHT)
- -- image = love.graphics.newImage(image_data)
- shader = love.graphics.newShader(shader_code)
- end
- local t = 0
- function love.update(dt)
- t = t + dt
- shader:send("time", t)
- end
- function love.draw()
- love.graphics.setShader(shader)
- shader:send("screen_dims", {
- love.graphics.getWidth(),
- love.graphics.getHeight()
- })
- love.graphics.rectangle('fill', 0, 0, WIDTH, HEIGHT)
- love.graphics.setShader()
- end
- function love.keypressed(k)
- if k == "r" then love.event.quit "restart" end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement