Ahora nos gustaría que las manzanas cayeran más rápido. Vamos a modificar su velocidad para hacer el juego más interesante. Para ello, creamos una variable float para que mV almacene la velocidad de caída de la manzana. Podremos cambiar la velocidad modificando el valor de mV. Al mismo tiempo, para poder controlar mejor el movimiento de la manzana en el eje Y, vamos a modificar el tipo de variable de mY para que sea float (para que pueda almacenar números decimales).
1 int nX=0;//coordenada X de Newton
2 int nY=0;//coordenada Y de Newton
3 float mY=0; //cambiamos el tipo de variable a float
4 int mX=15;//coordenada X de la manzana
5 float mV=3; //velocidad de caída de la manzana
6
7 void setup() {
8 size(400,400);
9 nY=height-25;
10 }
11
12 void draw(){
13 background(200);
14
15 //Movimiento de la manzana
16 mY=mY+mV;//introducimos la velocidad de la manzana
17 if (mY>height){
18 mY=15;//si toca el suelo elévala otra vez
19 mX=int(random(10,width-10));
20 }
21
22 fill(255);
23
24 //Detección de colisión
25 if(mY+10>nY && mY-10<nY+20){//está el círculo a la misma altura que el rectángulo?
26 if(mX+10>nX && mX-10<nX+20){//está el círculo sobre el rectángulo?
27 fill(255,0,0);//cambia el color a rojo
28 }
29 }
30
31 ellipse(mX,mY,20,20);
32 rect(nX, nY,20,20);
33 }
34
35 void keyPressed(){
36 if(keyCode == RIGHT){
37 nX=nX+3;
38 }
39 if(keyCode == LEFT){
40 nX=nX-3;
41 }
42 //Limita el valor de la coordenada X
43 if(nX<0){
44 nX=0;
45 }
46 if(nX>width-20){//Por la derecha tenemos en cuenta el tamaño del cuadrado
47 nX=width-20;
48 }
49 }
Aparte de la velocidad, nada ha cambiado, por lo que sólo hay una pequeña diferencia con el programa anterior: