#N canvas 419 23 584 707 10; #X declare -path ofelia/libs/of; #X obj 385 27 declare -path ofelia/libs/of; #X obj 25 76 of.setup; #X obj 25 428 of.draw; #X obj 25 118 of.setBackgroundColor 55; #X obj 25 13 loadbang; #X obj 25 55 of.Window; #X obj 25 97 of.setWindowTitle Grid; #X msg 25 34 setPosition 30 100 \, setSize 800 400 \, create; #X obj 25 139 ofelia d \$0-fbo \; local a = ofelia \; function a.bang() \; a.width \, a.height = of.getWidth() \, of.getHeight() \; a.fbo = of.Fbo() \; a.gridNumX = 32 \; a.gridNumY = 32 \; a.gridSizeX = of.getWidth() / a.gridNumX \; a.gridSizeY = of.getHeight() / a.gridNumY \; a.fbo:allocate(a.gridSizeX * a.gridNumX \, a.gridSizeY * a.gridNumY) \; a.fbo:beginFbo() \; local posX \, posY = 0 \, 0 \; for x = 0 \, a.gridNumX-1 do \; for y = 0 \, a.gridNumY-1 do \; posX \, posY = x*a.gridSizeX \, y*a.gridSizeY \; of.setColor(posX \, posY \, 100) \; of.drawRectangle(posX \, posY \, a.gridSizeX \, a.gridSizeY) \; of.setColor(0) \; of.drawLine(0 \, posY \, a.width \, posY) \; end \; of.drawLine(posX \, 0 \, posX \, a.height) \; end \; a.fbo:endFbo() \; end \;; #X f 76; #X obj 25 449 ofelia d \; function ofelia.bang() \; local a = require("\$0-fbo") \; a.fbo:draw(0 \, 0) \; local mouseX = of.getMouseX() // a.gridSizeX \; local mouseY = of.getMouseY() // a.gridSizeY \; for x = 0 \, a.gridNumX do \; for y = 0 \, a.gridNumY do \; if x == mouseX and y == mouseY then \; of.setColor(0) \; of.drawRectangle(mouseX*a.gridSizeX \, mouseY*a.gridSizeY \, a.gridSizeX \, a.gridSizeY) \; end \; end \; end \; end \;; #X f 86; #X connect 1 0 6 0; #X connect 2 0 9 0; #X connect 3 0 8 0; #X connect 4 0 7 0; #X connect 6 0 3 0; #X connect 7 0 5 0;