Here's some really messy code which I didn't bother to write a class for. I should've at least written array, but didn't do that either. Nevertheless, it's a good mimic of NED's very basic tiling system. Press 't' and place tiles as you normally do. Dashes indicate a break in the larger program for individual files. File/Tab One: boolean filled = false; boolean square = false; boolean triOne = false; boolean triTwo = false; boolean triThree = false; boolean quadOne = false; boolean quadTwo = false; boolean quadThree = false; boolean curv = false; boolean curvTwo = false; boolean tiles = false; boolean objects = false; boolean mines = false; boolean gold = false; float y = 0; float x = .1; int counter = 0; // TO DO: // Convex hull with each tile, save the curved concave // boolean array for better organization // eventual tile class // Fix gridding issues void setup() { size(560, 560); smooth(); inputSetup(); noStroke(); background(255); } void draw() { //grid(); noStroke(); if(keys['c']) { println(counter); } if(keys['i']) { background(0); stroke(255); } int tileNumX = ceil(mouseX/16); int tileNumY = ceil(mouseY/16); if(mousePressed) { println( tileNumX + ", " + tileNumY ); } if(keys['t']) { tiles = true; objects = false; } if(keys['o']) { objects = true; tiles = false; } if(tiles) { if(keys['e']) { pushMatrix(); fill(102); rect((tileNumX*16), (tileNumY*16), 16, 16); filled = true; square = true; popMatrix(); grid(); } if(keys['d']) { if(filled) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); } grid(); } if(keys['1']) { triOne = true; triTwo = false; triThree = false; curv = false; quadOne = false; quadTwo = false; quadThree = false; curvTwo = false; } if(keys['2']) { triTwo = true; triOne = false; triThree = false; curv = false; quadOne = false; quadTwo = false; quadThree = false; curvTwo = false; } if(keys['3']) { triThree = true; triOne = false; triTwo = false; curv = false; quadOne = false; quadTwo = false; quadThree = false; curvTwo = false; } if(keys['4']) { curv = true; triOne = false; triTwo = false; triThree = false; quadOne = false; quadTwo = false; quadThree = false; curvTwo = false; } if(keys['5']) { quadOne = true; triOne = false; triTwo = false; triThree = false; curv = false; quadTwo = false; quadThree = false; curvTwo = false; } if(keys['6']) { quadTwo = true; triOne = false; triTwo = false; triThree = false; curv = false; quadOne = false; quadThree = false; curvTwo = false; } if(keys['7']) { quadThree = true; triOne = false; triTwo = false; triThree = false; curv = false; quadOne = false; quadTwo = false; curvTwo = false; } if(keys['8']) { curvTwo = true; triOne = false; triTwo = false; triThree = false; curv = false; quadOne = false; quadTwo = false; quadThree = false; } if(triOne) { pushMatrix(); fill(102); if(keys['w']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle((tileNumX*16), (tileNumY*16), (tileNumX*16), ((tileNumY+1)*16), ((tileNumX+1)*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { triangle((tileNumX*16), (tileNumY*16), (tileNumX*16), ((tileNumY+1)*16), ((tileNumX+1)*16), ((tileNumY+1)*16)); filled = true; } } if(keys['s']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle(((tileNumX+1)*16), (tileNumY*16), (tileNumX*16), (tileNumY*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { triangle(((tileNumX+1)*16), (tileNumY*16), (tileNumX*16), (tileNumY*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } if(keys['a']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { triangle((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16)); filled = true; } } if(keys['q']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle(((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { triangle(((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } popMatrix(); grid(); } if(triThree) { pushMatrix(); fill(102); if(keys['w']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle((tileNumX*16), ((tileNumY + .5)*16), (tileNumX*16), ((tileNumY+1)*16), ((tileNumX+1)*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { triangle((tileNumX*16), ((tileNumY + .53)*16), (tileNumX*16), ((tileNumY+1)*16), ((tileNumX+1)*16), ((tileNumY+1)*16)); filled = true; } } if(keys['s']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle(((tileNumX+1)*16), (tileNumY*16), (tileNumX*16), (tileNumY*16), (tileNumX*16), ((tileNumY+.5)*16)); popMatrix(); filled = true; } else { triangle(((tileNumX+1)*16), (tileNumY*16), (tileNumX*16), (tileNumY*16), (tileNumX*16), ((tileNumY+.5)*16)); filled = true; } } if(keys['a']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+.5)*16)); popMatrix(); filled = true; } else { triangle((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+.5)*16)); filled = true; } } if(keys['q']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle(((tileNumX+1)*16), ((tileNumY + .5)*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { triangle(((tileNumX+1)*16), ((tileNumY + .5)*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } popMatrix(); } if(triTwo) { pushMatrix(); fill(102); if(keys['w']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle((tileNumX*16), (tileNumY*16), (tileNumX*16), ((tileNumY+1)*16), ((tileNumX+.5)*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { triangle((tileNumX*16), (tileNumY*16), (tileNumX*16), ((tileNumY+1)*16), ((tileNumX+.5)*16), ((tileNumY+1)*16)); filled = true; } } if(keys['s']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle(((tileNumX+.5)*16), (tileNumY*16), (tileNumX*16), (tileNumY*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { triangle(((tileNumX+.5)*16), (tileNumY*16), (tileNumX*16), (tileNumY*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } if(keys['a']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle(((tileNumX+.5)*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { triangle(((tileNumX+.5)*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16)); filled = true; } } if(keys['q']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); triangle(((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), ((tileNumX+.5)*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { triangle(((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), ((tileNumX+.5)*16), ((tileNumY+1)*16)); filled = true; } } popMatrix(); } if(curv) { pushMatrix(); fill(102); if(keys['w']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); beginShape(); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex(((tileNumX+.1)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.9)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); vertex((tileNumX*16), ((tileNumY+1)*16)); endShape(CLOSE); popMatrix(); filled = true; } else { beginShape(); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex(((tileNumX+.1)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.9)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); vertex((tileNumX*16), ((tileNumY+1)*16)); endShape(CLOSE); filled = true; } } if(keys['s']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); beginShape(); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.1)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.1)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX)*16), ((tileNumY+1)*16)); vertex((tileNumX*16), ((tileNumY)*16)); endShape(CLOSE); popMatrix(); filled = true; } else { beginShape(); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.1)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.1)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX)*16), ((tileNumY+1)*16)); vertex((tileNumX*16), ((tileNumY)*16)); endShape(CLOSE); filled = true; } } if(keys['a']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); beginShape(); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.1)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.9)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); vertex(((tileNumX+1)*16), (tileNumY*16)); endShape(CLOSE); popMatrix(); filled = true; } else { beginShape(); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.1)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.9)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); vertex(((tileNumX+1)*16), (tileNumY*16)); endShape(CLOSE); filled = true; } } if(keys['q']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); beginShape(); curveVertex((tileNumX*16), ((tileNumY+1)*16)); curveVertex((tileNumX*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.9)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.9)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); vertex(((tileNumX+1)*16), ((tileNumY+1)*16)); endShape(CLOSE); popMatrix(); filled = true; } else { beginShape(); curveVertex((tileNumX*16), ((tileNumY+1)*16)); curveVertex((tileNumX*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.9)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.9)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); vertex(((tileNumX+1)*16), ((tileNumY+1)*16)); endShape(CLOSE); filled = true; } } popMatrix(); } if(quadOne) { pushMatrix(); fill(102); if(keys['w']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+.5)*16), (tileNumX*16), ((tileNumY+.5)*16)); popMatrix(); filled = true; } else { quad((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+.5)*16), (tileNumX*16), ((tileNumY+.5)*16)); filled = true; } } if(keys['s']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad(((tileNumX+.5)*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), ((tileNumX+.5)*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { quad(((tileNumX+.5)*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), ((tileNumX+.5)*16), ((tileNumY+1)*16)); filled = true; } } if(keys['a']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad((tileNumX*16), ((tileNumY+.5)*16), ((tileNumX+1)*16), ((tileNumY+.5)*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { quad((tileNumX*16), ((tileNumY+.5)*16), ((tileNumX+1)*16), ((tileNumY+.5)*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } if(keys['q']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad((tileNumX*16), (tileNumY*16), ((tileNumX+.5)*16), (tileNumY*16), ((tileNumX+.5)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { quad((tileNumX*16), (tileNumY*16), ((tileNumX+.5)*16), (tileNumY*16), ((tileNumX+.5)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } popMatrix(); } if(quadTwo) { pushMatrix(); fill(102); if(keys['w']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad((tileNumX*16), (tileNumY*16), ((tileNumX+.5)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { quad((tileNumX*16), (tileNumY*16), ((tileNumX+.5)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } if(keys['s']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad(((tileNumX)*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+.5)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { quad(((tileNumX)*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+.5)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } if(keys['a']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), ((tileNumX+.5)*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { quad((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), ((tileNumX+.5)*16), ((tileNumY+1)*16)); filled = true; } } if(keys['q']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad(((tileNumX+.5)*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { quad(((tileNumX+.5)*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } popMatrix(); } if(quadThree) { pushMatrix(); fill(102); if(keys['w']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+.5)*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { quad((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+.5)*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } if(keys['s']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad(((tileNumX)*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+.5)*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { quad(((tileNumX)*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+.5)*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } if(keys['a']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+.5)*16)); popMatrix(); filled = true; } else { quad((tileNumX*16), (tileNumY*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+.5)*16)); filled = true; } } if(keys['q']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); quad(((tileNumX)*16), ((tileNumY+.5)*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); popMatrix(); filled = true; } else { quad(((tileNumX)*16), ((tileNumY+.5)*16), ((tileNumX+1)*16), (tileNumY*16), ((tileNumX+1)*16), ((tileNumY+1)*16), (tileNumX*16), ((tileNumY+1)*16)); filled = true; } } popMatrix(); } if(curvTwo) { pushMatrix(); fill(102); if(keys['w']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); beginShape(); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.1)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.9)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); vertex((tileNumX*16), ((tileNumY+1)*16)); endShape(CLOSE); popMatrix(); filled = true; } else { beginShape(); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.1)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.9)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); vertex((tileNumX*16), ((tileNumY+1)*16)); endShape(CLOSE); filled = true; } } if(keys['s']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); beginShape(); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+.9)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.9)*16)); curveVertex(((tileNumX)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX)*16), ((tileNumY+1)*16)); vertex((tileNumX*16), ((tileNumY)*16)); endShape(CLOSE); popMatrix(); filled = true; } else { beginShape(); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+.9)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.9)*16)); curveVertex(((tileNumX)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX)*16), ((tileNumY+1)*16)); vertex((tileNumX*16), ((tileNumY)*16)); endShape(CLOSE); filled = true; } } if(keys['a']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); beginShape(); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex(((tileNumX+.1)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.9)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); vertex(((tileNumX+1)*16), (tileNumY*16)); endShape(CLOSE); popMatrix(); filled = true; } else { beginShape(); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex((tileNumX*16), (tileNumY*16)); curveVertex(((tileNumX+.1)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.9)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+1)*16), ((tileNumY+1)*16)); vertex(((tileNumX+1)*16), (tileNumY*16)); endShape(CLOSE); filled = true; } } if(keys['q']) { if(square) { pushMatrix(); fill(255); rect((tileNumX*16), (tileNumY*16), 16, 16); popMatrix(); pushMatrix(); fill(102); beginShape(); curveVertex((tileNumX*16), ((tileNumY+1)*16)); curveVertex((tileNumX*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+.1)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.1)*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); vertex(((tileNumX+1)*16), ((tileNumY+1)*16)); endShape(CLOSE); popMatrix(); filled = true; } else { beginShape(); curveVertex((tileNumX*16), ((tileNumY+1)*16)); curveVertex((tileNumX*16), ((tileNumY+1)*16)); curveVertex(((tileNumX+.1)*16), ((tileNumY+.8)*16)); curveVertex(((tileNumX+.2)*16), ((tileNumY+.6)*16)); curveVertex(((tileNumX+.4)*16), ((tileNumY+.4)*16)); curveVertex(((tileNumX+.6)*16), ((tileNumY+.2)*16)); curveVertex(((tileNumX+.8)*16), ((tileNumY+.1)*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); curveVertex(((tileNumX+1)*16), (tileNumY*16)); vertex(((tileNumX+1)*16), ((tileNumY+1)*16)); endShape(CLOSE); filled = true; } } popMatrix(); } } if(objects) { if(keys['3']) { mines = true; gold = false; } if(keys['0']) { gold = true; mines = false; } if(mines) { if(mousePressed) { pushMatrix(); stroke(150, 0, 0); strokeWeight(1); line(((tileNumX+.3)*16), ((tileNumY+.3)*16), ((tileNumX+.6)*16), ((tileNumY+.6)*16)); line(((tileNumX+.6)*16), ((tileNumY+.3)*16), ((tileNumX+.3)*16), ((tileNumY+.6)*16)); popMatrix(); counter++; } } if(gold) { if(mousePressed) { pushMatrix(); fill(255, 215, 0); stroke(0); strokeWeight(1); quad(((tileNumX+.3)*16),((tileNumY+.3)*16), ((tileNumX+.6)*16), ((tileNumY+.3)*16), ((tileNumX+.6)*16), ((tileNumY+.6)*16), ((tileNumX+.3)*16), ((tileNumY+.6)*16)); popMatrix(); counter++; } } } } void grid() { noStroke(); for( int i = 0; i < height; i+=16) { line(0, i, width, i); } for( int i = 0; i < width; i+=16) { line(i, 0, i, height); } } File/Tab Two: boolean[] keys; int numKeys= 128; boolean[] codedKeys; int numCodedKeys = 37; void inputSetup() { keys = new boolean[numKeys]; for(int i = 0; i < numKeys; i++) { keys[i] = false; } codedKeys = new boolean[numCodedKeys]; for(int i = 0; i < numCodedKeys; i++) { codedKeys[i] = false; } } void keyPressed() { if( key == CODED ) { codedKeys[keyCode] = true; } else { keys[key] = true; } // println(key); } void keyReleased() { if( key == CODED ) { codedKeys[keyCode] = false; } else { keys[key] = false; } }