El primer que explicaré és com funciona una pala intel·ligent:
Here's how to make a list:
Per saber quan xoca la bola i la pala he de calcular el front de la bola i el front de la pala, perquè son les parts que xocaran.El front de la bola el calculem restant ball.x i ball.r, perquè ball.x calcula fins al centre de la bola i necessitem ball.r per restar el radi perque no xoca per el centre sino per un costat. Si xocan amb l'altre pala hem de calcular un altre front de bola perquè xoca per l'altre costat i ara el calcul es diferent: ball.x + ball.r. La pala el seu calcul del front es totalment diferent que la pala de la dreta respecte la pala de l'esquerra. La pala de l'esquerra es la pala intel·ligent i per calcular el seu front s'ha de fer aiPaddle.x + aiPaddle.width i el front de la pala del jugador seria playerPaddle.x perquè no hem de sumar l'amplada perquè sino xocaria per darrera.
el moviment de la pala manual es basa en una variable que es false el principi i que es transfora en true quan apreto la tecla key UP_ARROW i un altre variable també false que es transforma en true quan apreto la tecla DOWN_ARROW. La diferencia es que activa cada tecla una funció que s'anomena this.up la que puja i this.down la que baixa. La funció this.up provoca que playerPaddle y -- que significa que la y es faci més petita i puji la pala del jugador. El this.down és al mateix però al reves, y ++.
La puntacio ha de cumplir les condicions de la pala que no xoqui amb la bola i que sobrepassi aiPaddle.x o playerPaddle.x + playerPaddle.width