Hi everyone.
I am trying to build up a little game: a labyrinth in which two images move (both make the same move with the same input keyCode). I did make the labyrinth, uploaded the images and created the “joypad”. Now, what I need to do, is:
- Say “when the image gets to the border of the window do not process the input keyCode you’ve got”
- Say “when the image touch a wall of the labyrinth (line) don’t process the input keyCode you’ve got”
I am kinda struggling here. I know I need to create (for the second topic) a boolean cicle which says basically “when image and line overlap, don’t move”, but I don’t really know how…
here’s the code (kinda long):
*notes are in Italian, but really not about the code, more about where I put the stuff
Labirinto l;
PImage lab; // labirinto
PImage a; // ciliegio
PImage c; // coppia
PImage v; // varja
void setup() {
size(500, 500);
l = new Labirinto();
//lab = loadImage("lab_10_1.gif");
a = loadImage("th.jpeg");
c = loadImage("Chair-PNG-Picture.png");
v = loadImage("Volcano-Free-PNG-Image.png");
} // end setup
void draw() {
// background(lab);
background(0);
stroke(255);
strokeWeight(2);
l.display();
image(a, 0, 0, 50, 50); // ciliegio
image(c, imgCx, imgCy, 50, 50); // coppia
image(v, imgVx, imgVy, 50, 50); // varja
} // end draw
//------------------------------------------------------------------------------------------
float imgCx = 450; // coppia posizione iniziale asse X
float imgCy = 450; // coppia posizione iniziale asse Y
float imgVx = 300; // varja posizione iniziale asse X
float imgVy = 450; // varja posizione iniziale asse Y
void keyPressed() {
if (key == CODED) {
if (keyCode == UP) {
imgCx = imgCx;
imgCy = imgCy -50;
imgVx = imgVx;
imgVy = imgVy -50;
} // end if UP
else if (keyCode == DOWN) {
imgCx = imgCx;
imgCy = imgCy +50;
imgVx = imgVx;
imgVy = imgVy +50;
} // end else if DOWN
else if (keyCode == RIGHT) {
imgCx = imgCx +50;
imgCy = imgCy;
imgVx = imgVx +50;
imgVy = imgVy;
} // end else if RIGHT
else if (keyCode == LEFT) {
imgCx = imgCx -50;
imgCy = imgCy;
imgVx = imgVx -50;
imgVy = imgVy;
} // end else if LEFT
} // end if CODED
} // end keyPressed
// ----------------------------------------------------------------------------------------
class Labirinto {
void display() {
// verticali (dx-sx)
line(100, 500, 100, 450); // primo livello
line(250, 500, 250, 400); // primo + secondo livello
line(350, 500, 350, 450); // primo livello
line(150, 450, 150, 400); // secondo livello
line(300, 450, 300, 350); // secondo + terzo livello
line(400, 450, 400, 350); // secondo + terzo livello
line(450, 450, 450, 400); // secondo livello
line(50, 400, 50, 350); // terzo livello
line(200, 400, 200, 250); // terzo + quarto + quinto livello
line(100, 350, 100, 250); // quarto + quinto livello
line(350, 350, 350, 300 ); // quarto livello
line(150, 300, 150, 200); // quinto livello
line(250, 300, 250, 200); // quinto livello
line(300, 300, 300, 250); // quinto livello
line(50, 250, 50, 200); // sesto livello
line(350, 250, 350, 200); // sesto livello
line(450, 250, 450, 200); // sesto livello
line(100, 200, 100, 150); // settimo livello
line(200, 200, 200, 100); // settimo + ottavo livello
line(300, 150, 300, 100); // ottavo livello
line(400, 150, 400, 0); // ottavo + nono + decimo livello
line(50, 100, 50, 50); // nono livello
line(250, 100, 250, 50); // nono livello
line(450, 100, 450, 50); // nono livello
// orizzontali (u-d)
line(0, 150, 100, 150); // prima + seconda colonna
line(0, 350, 50, 350); // prima
line(50, 50, 350, 50); // prima + seconda + terza + quarta + quinta + sesta colonna
line(50, 100, 150, 100); // seconda + terza colonna
line(50, 250, 100, 250); // seconda colonna
line(50, 300, 100, 300); // seconda colonna
line(50, 400, 150, 400); // seconda + terza colonna
line(50, 450, 100, 450); // seconda colonna
line(100, 200, 200, 200); // terza + quarta colonna
line(100, 350, 200, 350); // terza + quarta colonna
line(150, 150, 250, 150); // quarta + quinta colonna
line(150, 450, 200, 450); // quarta colonna
line(200, 300, 250, 300); // quinta colonna
line(200, 400, 250, 400); // quinta colonna
line(250, 100, 400, 100); // sesta + settima + ottava colonna
line(250, 200, 300, 200); // sesta colonna
line(250, 350, 350, 350); // sesta + settima colonna
line(300, 150, 350, 150); // settima colonna
line(300, 250, 400, 250); // settima + ottava colonna
line(300, 450, 350, 450); // settima colonna
line(350, 200, 500, 200); // ottava + nona + decima colonna
line(350, 400, 400, 400); // ottava colonna
line(400, 150, 450, 150); // nona colonna
line(400, 300, 500, 300); // nona + decima colonna
line(400, 350, 500, 350); // nona + decima colonna
line(400, 450, 450, 450); // nona colonna
line(450, 100, 500, 100); // decima colonna
} // end display
}