Interactive Programming: Grid Drawing
For homework on 8/1/2018 I already knew how interactive functions such as mouseClicked() worked. So I spoke to my faculty member teaching code (Jackie Wu) and she allowed me to work on a project towards my final. For my final one of the portions will have a processing program that allows users to make tetrominoes. So I created a grid that the user can move a selector box around and then fill by pressing the “k” key.

Here is my code:
int windowScale = 24;
int cols, rows;
int x = 0;
int y = 0;
int colPos = 0;
int rowPos = 0;
int paintBoxX = 0;
int paintBoxY = 0;
boolean yesPress = false;
void setup(){
size(1920, 1440);
background(0);
//Size the cells of the grid based off of the window size
cols = width;
rows = height;
//Loop for columns
for (int i = 0; i < cols; i = i+windowScale){
//Loop for rows
for (int j = 0; j < rows; j = j+windowScale){
block(i, j, false);
}
}
}
void block(int colPos, int rowPos, boolean isFilled){
//color grid squares
if (isFilled == false){
fill(255);
}else{
fill(0);
}
stroke(0);
rect(colPos, rowPos, windowScale, windowScale);
println("isFilled ==" + isFilled);
}
void draw(){
//area check for the movement of the paintbox selector
if (paintBoxX < 0){
paintBoxX = 0;
}
if (paintBoxX > 1920){
paintBoxX = 1920;
}
if (paintBoxY < 0){
paintBoxY = 0;
}
if (paintBoxY > 1440){
paintBoxY = 1440;
}
//display the paintbox
stroke (255, 0, 0);
rect(paintBoxX, paintBoxY, windowScale, windowScale);
}
void keyPressed(){
//movement of the paintbox
if (yesPress == false){
if (key == CODED){
if (keyCode == RIGHT){
stroke(0);
rect(paintBoxX, paintBoxY, windowScale, windowScale);
paintBoxX += windowScale;
yesPress = true;
println("I'm printing!");
}
if (keyCode == LEFT){
stroke(0);
rect(paintBoxX, paintBoxY, windowScale, windowScale);
paintBoxX -= windowScale;
yesPress = true;
}
if (keyCode == UP){
stroke(0);
rect(paintBoxX, paintBoxY, windowScale, windowScale);
paintBoxY -= windowScale;
yesPress = true;
}
if (keyCode == DOWN){
stroke(0);
rect(paintBoxX, paintBoxY, windowScale, windowScale);
paintBoxY += windowScale;
yesPress = true;
}
}
if (key == 'k') {
block(paintBoxX, paintBoxY, true);
}else{
block(paintBoxX, paintBoxY, false);
}
}
}
//limits the paintbox to one movement per key press
void keyReleased(){
yesPress = false;
}

Sorry, the comment form is closed at this time.