Search code examples
javascript2d-gameskaboom

Kaboom.js: how to set the background to an image


I'm making a kaboom.js game and I want to set the background of a scene to an image. I can only find solutions on changing the background to a colour. I hope someone can help!


Solution

  • In Kaboom.js there is no special support for background images. However you can use a regular game object with a sprite component as a background image. Here's a simple example:

    async function init() {
      kaboom();
      let bgImage = await loadSprite("background", "https://www.paulwheeler.us/files/windows-95-desktop-background.jpg");
    
      let background = add([
        sprite("background"),
        // Make the background centered on the screen
        pos(width() / 2, height() / 2),
        origin("center"),
        // Allow the background to be scaled
        scale(1),
        // Keep the background position fixed even when the camera moves
        fixed()
      ]);
      // Scale the background to cover the screen
      background.scaleTo(Math.max(
        width() / bgImage.tex.width,
        height() / bgImage.tex.height
      ));
    }
    
    init();
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/kaboom.js"></script>