Para contar los puntos, se debe detectar cuándo aterriza una manzana en la cabeza de Newton. La acción de detectar que dos objetos chocan en la pantalla se llama detección de colisión. Utilizaremos las funciones condicionales if-else para ver si el círculo está sobre el cuadrado y, de ser así, el color del cuadrado cambiará a rojo. Para hacer el programa más sencillo, crearemos una variable que almacene las coordenadas Y del cuadrado, y así poder hacer las comparaciones de un modo más sencillo.
1 int nX=0;//coordenada X de Newton
2 int nY=0;//coordenada Y de Newton
3 int mY=0; //coordenada Y de la manzana
4 int mX=15;//coordenada X de la manzana
5
6 void setup() {
7 size(400,400);
8 nY=height-25;
9 }
10
11 void draw(){
12 background(200);
13
14 mY=mY+1;//incrementa la coordenada Y de la manzana
15 if (mY>height){
16 mY=15;//si toca el suelo elévala otra vez
17 mX=int(random(10,width-10));
18 }
19
20 fill(255);
21
22 //Detección de colisión
23 if(mY+10>nY && mY-10<nY+20){ //está el círculo a la altura del rectángulo?
24 if(mX+10>nX && mX-10<nX+20){//está el círculo sobre el rectángulo?
25 fill(255,0,0);//cambia el color a rojo
26 }
27 }
28
29 ellipse(mX,mY,20,20);
30 rect(nX, nY,20,20);
31 }
32
33 void keyPressed(){
34 if(keyCode == RIGHT){
35 nX=nX+3;
36 }
27 if(keyCode == LEFT){
28 nX=nX-3;
29 }
30 //Limita el valor de la coordenada X
31 if(nX<0){
32 nX=0;
33 }
34 if(nX>width-20){//Por la derecha tenemos en cuenta el tamaño del cuadrado
35 nX=width-20;
36 }
37 }