se ve algo así mi detalle
quizás también noten lo de al momento de dar la curva se ve algo cutre pero agregare otro sprite para evitar ese efecto.
Si piensan en alguna otra idea de como solucionar eso se los agradecería este es mi código
Código
for (let i = 0; i < serpi.length; i++) { if (i == 0 && serpi.length == 1) { ctx.drawImage(obj3, serpi[i].x, serpi[i].y); } else if (i == 0) { if (d == "LEFT") ctx.drawImage(obj1, 25, 0, 25, 25, serpi[i].x, serpi[i].y, 25, 25); if (d == "UP") ctx.drawImage(obj1, 0, 25*1, 25, 25, serpi[i].x, serpi[i].y, 25, 25); if (d == "RIGHT") ctx.drawImage(obj1, 0, 0, 25, 25, serpi[i].x, serpi[i].y, 25, 25); if (d == "DOWN") ctx.drawImage(obj1, 25*1, 25*1, 25, 25, serpi[i].x, serpi[i].y, 25, 25); }else if(i==serpi.length-1){ if (d == "LEFT") ctx.drawImage(obj1, 0, 0, 25, 25, serpi[i].x, serpi[i].y, 25, 25); if (d == "UP") ctx.drawImage(obj1, 25*1, 25*1, 25, 25, serpi[i].x, serpi[i].y, 25, 25); if (d == "RIGHT") ctx.drawImage(obj1, 25, 0, 25, 25, serpi[i].x, serpi[i].y, 25, 25); if (d == "DOWN") ctx.drawImage(obj1, 0, 25*1, 25, 25, serpi[i].x, serpi[i].y, 25, 25); }else { ctx.drawImage(obj2, serpi[i].x, serpi[i].y); } }