Hasta ahora, las manzanas siempre salen de la misma posición en lo alto de la pantalla, así que es bastante predecible. Para cambiar la X de origen y que cada vez salga de un sitio distinto, haremos uso de la función random() que permite generar números aleatorios. Necesitaremos una nueva variable para almacenar la posición X de la manzana (que debe cambiar sólo cuando la manzana llegue al suelo, porque si no, cambiaría su posición aleatoriamente durante su caída).
1 int nX=0; //coordenada X de Newton
2 int mY=0; //coordenada Y de la manzana
3 int mX=15; //coordenada X de la manzana
4
5 void setup() {
6 size(400,400);
7 }
8
9 void draw(){
10 background(200);
11
12 mY=mY+1; //incrementa la coordenada Y de la manzana
13 if (mY>height){
14 mY=15;//si toca el suelo elévala otra vez
15 mX=int(random(10,width-10)); //valor aleatorio para la X de la manzana
16 }
17
18 ellipse(mX,mY,20,20);
19 rect(nX, height-25,20,20);
20 }
21
22 void keyPressed(){
23 if(keyCode == RIGHT){
24 nX=nX+3;
25 }
26 if(keyCode == LEFT){
27 nX=nX-3;
28 }
29
30 if(nX<0){
31 nX=0; //Limita el valor de la coordenada X
32 }
33 if(nX>width-20){//Por la derecha tenemos en cuenta el tamaño del cuadrado
34 nX=width-20;
35 }
36 }