Для анимации с помощью canvas вам необходимо записать местоположение вашего объекта, а затем увеличить его на новом кадре. setInterval(draw, 1000 / 25);
позволяет запускать функцию через заданный интервал времени. Вы можете использовать эту функцию для обновления положения вашего объекта на странице каждый раз при рендеринге нового кадра.
Например:
function draw() { playersShip.move(); }
Где функция перемещения увеличивает или уменьшает координаты x и / или y вашего объекта. Эта линия рисует указанное изображение по указанной координате (которая обновляется при рендеринге каждого кадра).
ctx.drawImage(shipImage, playersShip.position.x, playersShip.position.y);
Было бы неплохо изолировать движение ваших объектов от частоты кадров, если вы строите игру или что-то подобное. Я могу предоставить более подробные образцы, если они вам нужны.
Используя эту идею, вы сможете создавать анимацию вашего изображения.