Pelo pouco que entendi:
De forma bem sucinta, esta função faz um cálculo simples pra informar que a velocidade de movimento no eixo Y da raquete do oponente é igual à posição atual do eixo-Y do centro da bolinha, menos a posição do eixo-Y da raquete do oponente, menos o comprimento da raquete dividido por dois ( pra pegar bem no centro da raquete do oponente. Esse "-30" é um fator a mais, pra que o oponente "erre" ocasionalmente. Se não, ele nunca iria errar.
A segunda linha da função está incrementando o eixo-Y da raquete do oponente, baseado na velocidade do eixo-Y da raquete do oponente.
Em miúdos, isso tudo é só pra raquete do oponente "seguir" o sobe e desce da bolinha. Se não for isso, me corrijam.
O meu código ficou assim:
function moveRaquetePC(x){
velocidadeYRaquetePC = yBola - yRaquetePC - comprimentoRaquete /2 -x;
yRaquetePC += velocidadeYRaquetePC;
yRaquetePC = constrain(yRaquetePC,20,485); // limita o movimento para que a raquete não deixe a tela.
}
Dei uma fuçada na referência e achei esse Constrain, utilizei ele pra impedir que as raquetes 'fugissem' da tela. Caso queira dar uma olhada no código inteiro:
https://editor.p5js.org/wmuzitanont/sketches/k5Zz_VrAd