最後活躍 1732598459

00.screen-ports-currently.lua 原始檔案 Playground
1return function(lvera)
2
3 local screen = love.graphics.newCanvas()
4 lvera:add_port({"@set resolution"}, function(counters)
5 love.window.setMode(counters["@resolution x"], counters["@resolution y"])
6 screen = resize(old_screen)
7 counters["@resolution x"] = 0
8 counters["@resolution y"] = 0
9 counters["@set resolution"] = 0
10 end)
11
12 local point = {{0, 0, 0, 0, 0, 1}}
13 lvera:add_port({"@set pixel"}, function(counters)
14 point[1][1] = counters["@pixel x"]
15 point[1][2] = counters["@pixel y"]
16 point[1][3] = (counters["@pixel r"] % 256) / 255
17 point[1][4] = (counters["@pixel g"] % 256) / 255
18 point[1][5] = (counters["@pixel b"] % 256) / 255
19 love.graphics.setCanvas(screen)
20 love.graphics.points(point)
21 love.graphics.setCanvas()
22 counters["@pixel x"] = 0
23 counters["@pixel y"] = 0
24 counters["@pixel r"] = 0
25 counters["@pixel g"] = 0
26 counters["@pixel b"] = 0
27 counters["@set pixel"] = 0
28 end)
29
30 lvera:add_port({"@draw line"}, function(counters)
31 local old_r, old_g, old_b, old_a = love.graphics.getColor()
32 local r, g, b = (counters["@pixel r"] % 256) / 255, (counters["@pixel g"] % 256) / 255, (counters["@pixel b"] % 256) / 255
33 love.graphics.setCanvas(screen)
34 love.graphics.setColor(r, g, b)
35 love.graphics.setLineWidth(3)
36 love.graphics.line(counters["@line x1"], counters["@line y1"], counters["@line x2"], counters["@line y2"])
37 love.graphics.setColor(old_r, old_g, old_b, old_a)
38 love.graphics.setCanvas()
39 counters["@draw line"] = 0
40 counters["@pixel r"] = 0
41 counters["@pixel g"] = 0
42 counters["@pixel b"] = 0
43 counters["@line x1"] = 0
44 counters["@line y1"] = 0
45 counters["@line x2"] = 0
46 counters["@line y2"] = 0
47 counters["@line-width"] = 0
48 end)
49
50 lvera:add_port({"@display"}, function(counters)
51 love.graphics.origin()
52 love.graphics.clear(love.graphics.getBackgroundColor())
53 love.graphics.draw(screen, 0, 0)
54 love.graphics.present()
55 counters["@display"] = 0
56 end)
57end
01.screen-ports-goal.lua 原始檔案 Playground
1return function(lvera)
2 local screen = love.graphics.newCanvas()
3 function lvera.set_resolution(counters, resolution_x, resolution_y)
4 love.window.setMode(resolution_x, resolution_y)
5 screen = resize(old_screen)
6 end
7
8 local point = {{0, 0, 0, 0, 0, 1}}
9 function lvera.set_pixel(counters, pixel_x, pixel_y, pixel_r, pixel_g, pixel_b)
10 point[1][1] = pixel_x
11 point[1][2] = pixel_y
12 point[1][3] = (pixel_r % 256) / 255
13 point[1][4] = (pixel_g % 256) / 255
14 point[1][5] = (pixel_b % 256) / 255
15 love.graphics.setCanvas(screen)
16 love.graphics.points(point)
17 love.graphics.setCanvas()
18 end
19
20 function lvera.draw_line(counters, line_x1, line_y1, line_x2, line_y2, pixel_r, pixel_g, pixel_b)
21 local old_r, old_g, old_b, old_a = love.graphics.getColor()
22 local r, g, b = (pixel_r % 256) / 255, (pixel_g % 256) / 255, (pixel_b % 256) / 255
23 love.graphics.setCanvas(screen)
24 love.graphics.setColor(r, g, b)
25 love.graphics.setLineWidth(3)
26 love.graphics.line(line_x1, line_y1, line_x2, line_y2)
27 love.graphics.setColor(old_r, old_g, old_b, old_a)
28 love.graphics.setCanvas()
29 end
30
31
32 function lvera.display(counters)
33 love.graphics.origin()
34 love.graphics.clear(love.graphics.getBackgroundColor())
35 love.graphics.draw(screen, 0, 0)
36 love.graphics.present()
37 end
38end