JSFiddle - React, Tailwind, and code Playground

HTML

<canvas width="360" height="680" id="canvas" style="background: #000"></canvas>

JavaScript

class Helper {
  random(min, max) {
    return Math.floor(Math.random()*(max-min+1))+min;
  }
}
class Images{
  base64ToImg(value) {
    var img = new Image();
    img.src = value;    
    return img;
  }
 
  spaceship() {
    return this.base64ToImg("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAABBCAYAAABFLC27AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABXUlEQVRoge3XSQ7CMAwFUKfi/ndol1wyLFAoVNB4+E7tiL9FdR6pM5TIMbXW6lF38ShK9ATft9UF7oI+QtFwOPoXEAmHonswFByG5oIQcAhaCrHCzWgtwAI3oa0zpn1ejUYtKk0dFRq970rridFeR7OkrgjtBZbWZ6O9wZJxWOhRYO54XfRoMGdct6upZ07RV81yb/z5Zjpq5kJf3c8t3xxzzXTkzIOO0s8tR888Mx09c6Cj9XPLu6uc/RgtpZRCNEt7IHPfVpe6H+jIrUG0+/7tMSovdPTWaKm11twznSl50Vn6uSXvTGdLTnS2fibKOtNXAzRZ2sU6U25E+xfBWUb2fs/Dbo9Rb4QzjqinveHc+uKF6AWX1FXtHmi4tJ56y0PBNXVM+7QVrn3efLhoB7b8YciJKAVY3xDsGOdCEGsBevfogVCLF35h+gVDbpMut7wjMNWlLOMHxj/p8wBz+MQEcXil+gAAAABJRU5ErkJggg==")
  }
  powerup() {
    return this.base64ToImg("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAABBCAYAAABFLC27AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABXUlEQVRoge3XSQ7CMAwFUKfi/ndol1wyLFAoVNB4+E7tiL9FdR6pM5TIMbXW6lF38ShK9ATft9UF7oI+QtFwOPoXEAmHonswFByG5oIQcAhaCrHCzWgtwAI3oa0zpn1ejUYtKk0dFRq970rridFeR7OkrgjtBZbWZ6O9wZJxWOhRYO54XfRoMGdct6upZ07RV81yb/z5Zjpq5kJf3c8t3xxzzXTkzIOO0s8tR888Mx09c6Cj9XPLu6uc/RgtpZRCNEt7IHPfVpe6H+jIrUG0+/7tMSovdPTWaKm11twznSl50Vn6uSXvTGdLTnS2fibKOtNXAzRZ2sU6U25E+xfBWUb2fs/Dbo9Rb4QzjqinveHc+uKF6AWX1FXtHmi4tJ56y0PBNXVM+7QVrn3efLhoB7b8YciJKAVY3xDsGOdCEGsBevfogVCLF35h+gVDbpMut7wjMNWlLOMHxj/p8wBz+MQEcXil+gAAAABJRU5ErkJggg==")
  }
  title() {
    return...