examples/paint/paint.nv
initial facts
use library
iteration love
brush color
pink
pixel size
9
grid size
50
grid padding
70
palette
5 cream
palette
4 mint
palette
3 thistle
palette
2 pink
palette
1 lavender
color cream
0.96 1.00 0.68
color mint
0.58 0.98 0.78
color thistle
0.84 0.74 0.84
color pink
1.00 0.70 0.79
color lavender
0.45 0.33 0.60
set font size to 20
create grid
rules
main loop
get mouse press
get key press
set background color to 0.07 0 0.08
draw palette
draw pixels
draw fps
create grid
grid size
Size
nested loop from 1 to Size
create pixel
create pixel
loop index
X Y
color lavender
R G B
pixel X Y
R G B
create pixel
mouse Button pressed at X Y
grid padding
Padding
pixel size
Pixel
mouse Button pressed pixel X Y
snippet
X = math.floor((X - Padding) / Pixel)
Y = math.floor((Y - Padding) / Pixel)
mouse left pressed pixel X Y
brush color
Brush
color Brush
R G B
pixel X Y
R2 G2 B2
pixel X Y
R G B
mouse right pressed pixel X Y
color lavender
R G B
pixel X Y
R2 G2 B2
pixel X Y
R G B
mouse Button pressed pixel X Y
pressed key Key
palette
Key Color
brush color
Brush
brush color
Color
pressed key Key
draw palette
palette
Key Color
draw palette
Key Color
draw palette
draw palette
Key Color
color Color
R G B
grid padding
Padding
set color to R G B
draw circle size 20 at 600 Y1
draw text Key at 640 Y2
draw selected Color outline at Y1
palette
Key Color
snippet
local Y1 = Key * 60 + Padding
local Y2 = Y1 - 10
draw selected Color outline at Y
brush color
Color
set color to 1 1 1
set line width to 6
draw circle outline size 20 at 600 Y
draw selected Color outline at Y
draw pixels
grid size
Size
nested loop from 1 to Size
draw pixel
draw pixel
loop index
X Y
pixel X Y
R G B
pixel size
Size
grid padding
Padding
set color to R G B
draw rectangle Size by Size at X Y
snippet
X = X * Size + Padding
Y = Y * Size + Padding
draw pixel
draw fps
set color to 1 1 1
draw fps at 10 10