UNPKG

kontra

Version:

Kontra HTML5 game development library

783 lines (694 loc) 33.9 kB
<!DOCTYPE html> <html lang="en"> <head> <title>Kontra.js – Assets</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <base href="https://straker.github.io/kontra/"> <script> // adjust path based on location (github pages required kontra url) if (window.location.host.indexOf('localhost') !== -1) { let base = document.querySelector('base'); base.setAttribute('href', '/'); } </script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/themes/prism.min.css"> <link rel="stylesheet" href="assets/styles.css"> <script src="assets/js/kontra.js"></script> </head> <body> <div class="content"> <header class="main-nav"> <div id="kontra-heading" class="nav-heading">Kontra</div> <a href="#main">Skip navigation</a> <nav> <button class="menu-button" aria-expanded="false" aria-controls="menu"><span aria-hidden="true"></span> Menu</button> <!-- add role=list back to list so screen readers still read it as list when css list-style: none is set @see https://web-a11y.slack.com/archives/C042TSFGN/p1501699529181172 --> <ul id="menu" role="list"> <li><a href="." >Introduction</a></li> <li><a href="getting-started" >Getting Started</a></li> <li><a href="download" >Download</a></li> <li><a href="tutorials" >Tutorials</a></li> <li><a href="made-with-kontra" >Made With Kontra</a></li> <li> <span id="api" class="nav-api-heading">API</span> <ul aria-labelledby="api"> <li><a href="api/animation" >Animation</a></li> <li><a href="api/assets" aria-current="page">Assets</a></li> <li><a href="api/core" >Core</a></li> <li><a href="api/events" >Events</a></li> <li><a href="api/gameLoop" >GameLoop</a></li> <li><a href="api/keyboard" >Keyboard</a></li> <li><a href="api/plugin" >Plugin</a></li> <li><a href="api/pointer" >Pointer</a></li> <li><a href="api/pool" >Pool</a></li> <li><a href="api/quadtree" >Quadtree</a></li> <li><a href="api/sprite" >Sprite</a></li> <li><a href="api/spriteSheet" >SpriteSheet</a></li> <li><a href="api/store" >Store</a></li> <li><a href="api/tileEngine" >TileEngine</a></li> <li><a href="api/vector" >Vector</a></li> </ul> </li> </ul> </nav> <div class="scroll-indicator" aria-hidden="true"><span>^</span></div> </header> <main id="main"> <div> <a href="https://github.com/straker/kontra" class="github-corner" aria-label="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a> <h1>Assets </h1> <p>A promise based asset loader for loading images, audio, and data files.</p> <div class="tablist"> <ul role="tablist"> <li role="presentation" data-tab="global"> <button role="tab" id="assets-global-tab">Global Object</button> </li> <li role="presentation" data-tab="es"> <button role="tab" id="assets-es-tab">ES Module Import</button> </li> <li role="presentation" data-tab="bundle"> <button role="tab" id="assets-bundle-tab">Module Bundler</button> </li> <li role="presentation"></li> </ul> <section role="tabpanel" aria-labelledby=assets-global-tab data-tabpanel="global"><pre><code class="language-js">let { load } = kontra; load( &#39;assets/imgs/character.png&#39;, &#39;assets/data/tile_engine_basic.json&#39;, [&#39;/audio/music.ogg&#39;, &#39;/audio/music.mp3&#39;] ).then(function(assets) { // all assets have loaded }).catch(function(err) { // error loading an asset });</code></pre></section> <section role="tabpanel" aria-labelledby=assets-es-tab data-tabpanel="es"><pre><code class="language-js">import { load } from 'path/to/kontra.mjs'; load( &#39;assets/imgs/character.png&#39;, &#39;assets/data/tile_engine_basic.json&#39;, [&#39;/audio/music.ogg&#39;, &#39;/audio/music.mp3&#39;] ).then(function(assets) { // all assets have loaded }).catch(function(err) { // error loading an asset });</code></pre></section> <section role="tabpanel" aria-labelledby=assets-bundle-tab data-tabpanel="bundle"><pre><code class="language-js">import { load } from &#39;kontra&#39;; load( &#39;assets/imgs/character.png&#39;, &#39;assets/data/tile_engine_basic.json&#39;, [&#39;/audio/music.ogg&#39;, &#39;/audio/music.mp3&#39;] ).then(function(assets) { // all assets have loaded }).catch(function(err) { // error loading an asset });</code></pre></section> </div> <section class="toc"> <h2 id="toc"><a href="#toc" class="section-link">Table of Contents<span aria-hidden="true">#</span></a></h2> <ul aria-labelledby="toc"> <li> <h3 id="properties">Properties</h3> <ul aria-labelledby="properties"> <li> <a href="api/assets#audioAssets"> <span>audioAssets</span> </a> </li> <li> <a href="api/assets#dataAssets"> <span>dataAssets</span> </a> </li> <li> <a href="api/assets#imageAssets"> <span>imageAssets</span> </a> </li> </ul> </li> <li> <h3 id="methods">Methods</h3> <ul aria-labelledby="methods"> <li> <a href="api/assets#load"> <span>load(&#8203;urls)</span> </a> </li> <li> <a href="api/assets#loadAudio"> <span>loadAudio(&#8203;url)</span> </a> </li> <li> <a href="api/assets#loadData"> <span>loadData(&#8203;url)</span> </a> </li> <li> <a href="api/assets#loadImage"> <span>loadImage(&#8203;url)</span> </a> </li> <li> <a href="api/assets#setAudioPath"> <span>setAudioPath(&#8203;path)</span> </a> </li> <li> <a href="api/assets#setDataPath"> <span>setDataPath(&#8203;path)</span> </a> </li> <li> <a href="api/assets#setImagePath"> <span>setImagePath(&#8203;path)</span> </a> </li> </ul> </li> </ul> </section> <section> <h2 id="audioAssets"> <a href="api/assets#audioAssets" class="section-link"> <span>audioAssets</span> <span aria-hidden="true">#</span> </a> </h2> <p>Object of all loaded audio assets by both file name and path. If the base <a href="#setAudioPath">audio path</a> was set before the audio was loaded, the file name and path will not include the base audio path.</p> <div class="tablist"> <ul role="tablist"> <li role="presentation" data-tab="global"> <button role="tab" id="audioassets-global-tab">Global Object</button> </li> <li role="presentation" data-tab="es"> <button role="tab" id="audioassets-es-tab">ES Module Import</button> </li> <li role="presentation" data-tab="bundle"> <button role="tab" id="audioassets-bundle-tab">Module Bundler</button> </li> <li role="presentation"></li> </ul> <section role="tabpanel" aria-labelledby=audioassets-global-tab data-tabpanel="global"><pre><code class="language-js">let { load, setAudioPath, audioAssets } = kontra; load(&#39;/audio/music.ogg&#39;).then(function() { // Audio asset can be accessed by both // name: audioAssets[&#39;/audio/music&#39;] // path: audioAssets[&#39;/audio/music.ogg&#39;] }); setAudioPath(&#39;/audio&#39;); load(&#39;sound.ogg&#39;).then(function() { // Audio asset can be accessed by both // name: audioAssets[&#39;sound&#39;] // path: audioAssets[&#39;sound.ogg&#39;] });</code></pre></section> <section role="tabpanel" aria-labelledby=audioassets-es-tab data-tabpanel="es"><pre><code class="language-js">import { load, setAudioPath, audioAssets } from 'path/to/kontra.mjs'; load(&#39;/audio/music.ogg&#39;).then(function() { // Audio asset can be accessed by both // name: audioAssets[&#39;/audio/music&#39;] // path: audioAssets[&#39;/audio/music.ogg&#39;] }); setAudioPath(&#39;/audio&#39;); load(&#39;sound.ogg&#39;).then(function() { // Audio asset can be accessed by both // name: audioAssets[&#39;sound&#39;] // path: audioAssets[&#39;sound.ogg&#39;] });</code></pre></section> <section role="tabpanel" aria-labelledby=audioassets-bundle-tab data-tabpanel="bundle"><pre><code class="language-js">import { load, setAudioPath, audioAssets } from &#39;kontra&#39;; load(&#39;/audio/music.ogg&#39;).then(function() { // Audio asset can be accessed by both // name: audioAssets[&#39;/audio/music&#39;] // path: audioAssets[&#39;/audio/music.ogg&#39;] }); setAudioPath(&#39;/audio&#39;); load(&#39;sound.ogg&#39;).then(function() { // Audio asset can be accessed by both // name: audioAssets[&#39;sound&#39;] // path: audioAssets[&#39;sound.ogg&#39;] });</code></pre></section> </div> </section> <section> <h2 id="dataAssets"> <a href="api/assets#dataAssets" class="section-link"> <span>dataAssets</span> <span aria-hidden="true">#</span> </a> </h2> <p>Object of all loaded data assets by both file name and path. If the base <a href="#setDataPath">data path</a> was set before the data was loaded, the file name and path will not include the base data path.</p> <div class="tablist"> <ul role="tablist"> <li role="presentation" data-tab="global"> <button role="tab" id="dataassets-global-tab">Global Object</button> </li> <li role="presentation" data-tab="es"> <button role="tab" id="dataassets-es-tab">ES Module Import</button> </li> <li role="presentation" data-tab="bundle"> <button role="tab" id="dataassets-bundle-tab">Module Bundler</button> </li> <li role="presentation"></li> </ul> <section role="tabpanel" aria-labelledby=dataassets-global-tab data-tabpanel="global"><pre><code class="language-js">let { load, setDataPath, dataAssets } = kontra; load(&#39;assets/data/file.txt&#39;).then(function() { // Audio asset can be accessed by both // name: dataAssets[&#39;assets/data/file&#39;] // path: dataAssets[&#39;assets/data/file.txt&#39;] }); setDataPath(&#39;assets/data&#39;); load(&#39;info.json&#39;).then(function() { // Audio asset can be accessed by both // name: dataAssets[&#39;info&#39;] // path: dataAssets[&#39;info.json&#39;] });</code></pre></section> <section role="tabpanel" aria-labelledby=dataassets-es-tab data-tabpanel="es"><pre><code class="language-js">import { load, setDataPath, dataAssets } from 'path/to/kontra.mjs'; load(&#39;assets/data/file.txt&#39;).then(function() { // Audio asset can be accessed by both // name: dataAssets[&#39;assets/data/file&#39;] // path: dataAssets[&#39;assets/data/file.txt&#39;] }); setDataPath(&#39;assets/data&#39;); load(&#39;info.json&#39;).then(function() { // Audio asset can be accessed by both // name: dataAssets[&#39;info&#39;] // path: dataAssets[&#39;info.json&#39;] });</code></pre></section> <section role="tabpanel" aria-labelledby=dataassets-bundle-tab data-tabpanel="bundle"><pre><code class="language-js">import { load, setDataPath, dataAssets } from &#39;kontra&#39;; load(&#39;assets/data/file.txt&#39;).then(function() { // Audio asset can be accessed by both // name: dataAssets[&#39;assets/data/file&#39;] // path: dataAssets[&#39;assets/data/file.txt&#39;] }); setDataPath(&#39;assets/data&#39;); load(&#39;info.json&#39;).then(function() { // Audio asset can be accessed by both // name: dataAssets[&#39;info&#39;] // path: dataAssets[&#39;info.json&#39;] });</code></pre></section> </div> </section> <section> <h2 id="imageAssets"> <a href="api/assets#imageAssets" class="section-link"> <span>imageAssets</span> <span aria-hidden="true">#</span> </a> </h2> <p>Object of all loaded image assets by both file name and path. If the base <a href="#setImagePath">image path</a> was set before the image was loaded, the file name and path will not include the base image path.</p> <div class="tablist"> <ul role="tablist"> <li role="presentation" data-tab="global"> <button role="tab" id="imageassets-global-tab">Global Object</button> </li> <li role="presentation" data-tab="es"> <button role="tab" id="imageassets-es-tab">ES Module Import</button> </li> <li role="presentation" data-tab="bundle"> <button role="tab" id="imageassets-bundle-tab">Module Bundler</button> </li> <li role="presentation"></li> </ul> <section role="tabpanel" aria-labelledby=imageassets-global-tab data-tabpanel="global"><pre><code class="language-js">let { load, setImagePath, imageAssets } = kontra; load(&#39;assets/imgs/character.png&#39;).then(function() { // Image asset can be accessed by both // name: imageAssets[&#39;assets/imgs/character&#39;] // path: imageAssets[&#39;assets/imgs/character.png&#39;] }); setImagePath(&#39;assets/imgs&#39;); load(&#39;character_walk_sheet.png&#39;).then(function() { // Image asset can be accessed by both // name: imageAssets[&#39;character_walk_sheet&#39;] // path: imageAssets[&#39;character_walk_sheet.png&#39;] });</code></pre></section> <section role="tabpanel" aria-labelledby=imageassets-es-tab data-tabpanel="es"><pre><code class="language-js">import { load, setImagePath, imageAssets } from 'path/to/kontra.mjs'; load(&#39;assets/imgs/character.png&#39;).then(function() { // Image asset can be accessed by both // name: imageAssets[&#39;assets/imgs/character&#39;] // path: imageAssets[&#39;assets/imgs/character.png&#39;] }); setImagePath(&#39;assets/imgs&#39;); load(&#39;character_walk_sheet.png&#39;).then(function() { // Image asset can be accessed by both // name: imageAssets[&#39;character_walk_sheet&#39;] // path: imageAssets[&#39;character_walk_sheet.png&#39;] });</code></pre></section> <section role="tabpanel" aria-labelledby=imageassets-bundle-tab data-tabpanel="bundle"><pre><code class="language-js">import { load, setImagePath, imageAssets } from &#39;kontra&#39;; load(&#39;assets/imgs/character.png&#39;).then(function() { // Image asset can be accessed by both // name: imageAssets[&#39;assets/imgs/character&#39;] // path: imageAssets[&#39;assets/imgs/character.png&#39;] }); setImagePath(&#39;assets/imgs&#39;); load(&#39;character_walk_sheet.png&#39;).then(function() { // Image asset can be accessed by both // name: imageAssets[&#39;character_walk_sheet&#39;] // path: imageAssets[&#39;character_walk_sheet.png&#39;] });</code></pre></section> </div> </section> <section> <h2 id="load"> <a href="api/assets#load" class="section-link"> <span>load(&#8203;urls)</span> <span aria-hidden="true">#</span> </a> </h2> <p>Load Image, Audio, or data files. Uses the <a href="#loadImage">loadImage</a>, <a href="#loadAudio">loadAudio</a>, and <a href="#loadData">loadData</a> functions to load each asset type.</p> <div class="tablist"> <ul role="tablist"> <li role="presentation" data-tab="global"> <button role="tab" id="load-global-tab">Global Object</button> </li> <li role="presentation" data-tab="es"> <button role="tab" id="load-es-tab">ES Module Import</button> </li> <li role="presentation" data-tab="bundle"> <button role="tab" id="load-bundle-tab">Module Bundler</button> </li> <li role="presentation"></li> </ul> <section role="tabpanel" aria-labelledby=load-global-tab data-tabpanel="global"><pre><code class="language-js">let { load } = kontra; load( &#39;assets/imgs/character.png&#39;, &#39;assets/data/tile_engine_basic.json&#39;, [&#39;/audio/music.ogg&#39;, &#39;/audio/music.mp3&#39;] ).then(function(assets) { // all assets have loaded }).catch(function(err) { // error loading an asset });</code></pre></section> <section role="tabpanel" aria-labelledby=load-es-tab data-tabpanel="es"><pre><code class="language-js">import { load } from 'path/to/kontra.mjs'; load( &#39;assets/imgs/character.png&#39;, &#39;assets/data/tile_engine_basic.json&#39;, [&#39;/audio/music.ogg&#39;, &#39;/audio/music.mp3&#39;] ).then(function(assets) { // all assets have loaded }).catch(function(err) { // error loading an asset });</code></pre></section> <section role="tabpanel" aria-labelledby=load-bundle-tab data-tabpanel="bundle"><pre><code class="language-js">import { load } from &#39;kontra&#39;; load( &#39;assets/imgs/character.png&#39;, &#39;assets/data/tile_engine_basic.json&#39;, [&#39;/audio/music.ogg&#39;, &#39;/audio/music.mp3&#39;] ).then(function(assets) { // all assets have loaded }).catch(function(err) { // error loading an asset });</code></pre></section> </div> <h3 id="title-load"><span class="visually-hidden">load</span> Parameters</span></h3> <dl aria-labelledby="title-load"> <dt> <code>urls</code> </dt> <dd><p>String or an Array of Strings. Comma separated list of asset urls to load.</p> </dd> </dl> <h3><span class="visually-hidden">load</span> Return value</h3> <p><p>A deferred promise. Resolves with all the loaded assets.</p> </p> </section> <section> <h2 id="loadAudio"> <a href="api/assets#loadAudio" class="section-link"> <span>loadAudio(&#8203;url)</span> <span aria-hidden="true">#</span> </a> </h2> <p>Load a single Audio asset. Supports loading multiple audio formats which the loader will use to load the first audio format supported by the browser in the order listed. Uses the base <a href="#setAudioPath">audio path</a> to resolve the URL.</p> <p>Once loaded, the asset will be accessible on the the <a href="#audioAssets">audioAssets</a> property. Since the loader determines which audio asset to load based on browser support, you should only reference the audio by its name and not by its file path since there&#39;s no guarantee which asset was loaded.</p> <div class="tablist"> <ul role="tablist"> <li role="presentation" data-tab="global"> <button role="tab" id="loadaudio-global-tab">Global Object</button> </li> <li role="presentation" data-tab="es"> <button role="tab" id="loadaudio-es-tab">ES Module Import</button> </li> <li role="presentation" data-tab="bundle"> <button role="tab" id="loadaudio-bundle-tab">Module Bundler</button> </li> <li role="presentation"></li> </ul> <section role="tabpanel" aria-labelledby=loadaudio-global-tab data-tabpanel="global"><pre><code class="language-js">let { loadAudio, audioAssets } = kontra; loadAudio([ &#39;/audio/music.mp3&#39;, &#39;/audio/music.ogg&#39; ]).then(function(audio) { // access audio by its name only (not by its .mp3 or .ogg path) audioAssets[&#39;/audio/music&#39;].play(); })</code></pre></section> <section role="tabpanel" aria-labelledby=loadaudio-es-tab data-tabpanel="es"><pre><code class="language-js">import { loadAudio, audioAssets } from 'path/to/kontra.mjs'; loadAudio([ &#39;/audio/music.mp3&#39;, &#39;/audio/music.ogg&#39; ]).then(function(audio) { // access audio by its name only (not by its .mp3 or .ogg path) audioAssets[&#39;/audio/music&#39;].play(); })</code></pre></section> <section role="tabpanel" aria-labelledby=loadaudio-bundle-tab data-tabpanel="bundle"><pre><code class="language-js">import { loadAudio, audioAssets } from &#39;kontra&#39;; loadAudio([ &#39;/audio/music.mp3&#39;, &#39;/audio/music.ogg&#39; ]).then(function(audio) { // access audio by its name only (not by its .mp3 or .ogg path) audioAssets[&#39;/audio/music&#39;].play(); })</code></pre></section> </div> <h3 id="title-loadAudio"><span class="visually-hidden">loadAudio</span> Parameters</span></h3> <dl aria-labelledby="title-loadAudio"> <dt> <code>url</code> </dt> <dd><p>String. The URL to the Audio file.</p> </dd> </dl> <h3><span class="visually-hidden">loadAudio</span> Return value</h3> <p><p>A deferred promise. Promise resolves with the Audio.</p> </p> </section> <section> <h2 id="loadData"> <a href="api/assets#loadData" class="section-link"> <span>loadData(&#8203;url)</span> <span aria-hidden="true">#</span> </a> </h2> <p>Load a single Data asset. Uses the base <a href="#setDataPath">data path</a> to resolve the URL.</p> <p>Once loaded, the asset will be accessible on the the <a href="#dataAssets">dataAssets</a> property.</p> <div class="tablist"> <ul role="tablist"> <li role="presentation" data-tab="global"> <button role="tab" id="loaddata-global-tab">Global Object</button> </li> <li role="presentation" data-tab="es"> <button role="tab" id="loaddata-es-tab">ES Module Import</button> </li> <li role="presentation" data-tab="bundle"> <button role="tab" id="loaddata-bundle-tab">Module Bundler</button> </li> <li role="presentation"></li> </ul> <section role="tabpanel" aria-labelledby=loaddata-global-tab data-tabpanel="global"><pre><code class="language-js">let { loadData } = kontra; loadData(&#39;assets/data/tile_engine_basic.json&#39;).then(function(data) { // data contains the parsed JSON data })</code></pre></section> <section role="tabpanel" aria-labelledby=loaddata-es-tab data-tabpanel="es"><pre><code class="language-js">import { loadData } from 'path/to/kontra.mjs'; loadData(&#39;assets/data/tile_engine_basic.json&#39;).then(function(data) { // data contains the parsed JSON data })</code></pre></section> <section role="tabpanel" aria-labelledby=loaddata-bundle-tab data-tabpanel="bundle"><pre><code class="language-js">import { loadData } from &#39;kontra&#39;; loadData(&#39;assets/data/tile_engine_basic.json&#39;).then(function(data) { // data contains the parsed JSON data })</code></pre></section> </div> <h3 id="title-loadData"><span class="visually-hidden">loadData</span> Parameters</span></h3> <dl aria-labelledby="title-loadData"> <dt> <code>url</code> </dt> <dd><p>String. The URL to the Data file.</p> </dd> </dl> <h3><span class="visually-hidden">loadData</span> Return value</h3> <p><p>A deferred promise. Promise resolves with the contents of the file. If the file is a JSON file, the contents will be parsed as JSON.</p> </p> </section> <section> <h2 id="loadImage"> <a href="api/assets#loadImage" class="section-link"> <span>loadImage(&#8203;url)</span> <span aria-hidden="true">#</span> </a> </h2> <p>Load a single Image asset. Uses the base <a href="#setImagePath">image path</a> to resolve the URL.</p> <p>Once loaded, the asset will be accessible on the the <a href="#imageAssets">imageAssets</a> property.</p> <div class="tablist"> <ul role="tablist"> <li role="presentation" data-tab="global"> <button role="tab" id="loadimage-global-tab">Global Object</button> </li> <li role="presentation" data-tab="es"> <button role="tab" id="loadimage-es-tab">ES Module Import</button> </li> <li role="presentation" data-tab="bundle"> <button role="tab" id="loadimage-bundle-tab">Module Bundler</button> </li> <li role="presentation"></li> </ul> <section role="tabpanel" aria-labelledby=loadimage-global-tab data-tabpanel="global"><pre><code class="language-js">let { loadImage } = kontra; loadImage(&#39;car.png&#39;).then(function(image) { console.log(image.src); //=&gt; &#39;car.png&#39; })</code></pre></section> <section role="tabpanel" aria-labelledby=loadimage-es-tab data-tabpanel="es"><pre><code class="language-js">import { loadImage } from 'path/to/kontra.mjs'; loadImage(&#39;car.png&#39;).then(function(image) { console.log(image.src); //=&gt; &#39;car.png&#39; })</code></pre></section> <section role="tabpanel" aria-labelledby=loadimage-bundle-tab data-tabpanel="bundle"><pre><code class="language-js">import { loadImage } from &#39;kontra&#39;; loadImage(&#39;car.png&#39;).then(function(image) { console.log(image.src); //=&gt; &#39;car.png&#39; })</code></pre></section> </div> <h3 id="title-loadImage"><span class="visually-hidden">loadImage</span> Parameters</span></h3> <dl aria-labelledby="title-loadImage"> <dt> <code>url</code> </dt> <dd><p>String. The URL to the Image file.</p> </dd> </dl> <h3><span class="visually-hidden">loadImage</span> Return value</h3> <p><p>A deferred promise. Promise resolves with the Image.</p> </p> </section> <section> <h2 id="setAudioPath"> <a href="api/assets#setAudioPath" class="section-link"> <span>setAudioPath(&#8203;path)</span> <span aria-hidden="true">#</span> </a> </h2> <p>Sets the base path for all audio assets. If a base path is set, all load calls for audio assets will prepend the base path to the URL.</p> <div class="tablist"> <ul role="tablist"> <li role="presentation" data-tab="global"> <button role="tab" id="setaudiopath-global-tab">Global Object</button> </li> <li role="presentation" data-tab="es"> <button role="tab" id="setaudiopath-es-tab">ES Module Import</button> </li> <li role="presentation" data-tab="bundle"> <button role="tab" id="setaudiopath-bundle-tab">Module Bundler</button> </li> <li role="presentation"></li> </ul> <section role="tabpanel" aria-labelledby=setaudiopath-global-tab data-tabpanel="global"><pre><code class="language-js">let { setAudioPath, load } = kontra; setAudioPath(&#39;/audio&#39;); load(&#39;music.ogg&#39;); // loads &#39;/audio/music.ogg&#39;</code></pre></section> <section role="tabpanel" aria-labelledby=setaudiopath-es-tab data-tabpanel="es"><pre><code class="language-js">import { setAudioPath, load } from 'path/to/kontra.mjs'; setAudioPath(&#39;/audio&#39;); load(&#39;music.ogg&#39;); // loads &#39;/audio/music.ogg&#39;</code></pre></section> <section role="tabpanel" aria-labelledby=setaudiopath-bundle-tab data-tabpanel="bundle"><pre><code class="language-js">import { setAudioPath, load } from &#39;kontra&#39;; setAudioPath(&#39;/audio&#39;); load(&#39;music.ogg&#39;); // loads &#39;/audio/music.ogg&#39;</code></pre></section> </div> <h3 id="title-setAudioPath"><span class="visually-hidden">setAudioPath</span> Parameters</span></h3> <dl aria-labelledby="title-setAudioPath"> <dt> <code>path</code> </dt> <dd><p>String. Base audio path.</p> </dd> </dl> </section> <section> <h2 id="setDataPath"> <a href="api/assets#setDataPath" class="section-link"> <span>setDataPath(&#8203;path)</span> <span aria-hidden="true">#</span> </a> </h2> <p>Sets the base path for all data assets. If a base path is set, all load calls for data assets will prepend the base path to the URL.</p> <div class="tablist"> <ul role="tablist"> <li role="presentation" data-tab="global"> <button role="tab" id="setdatapath-global-tab">Global Object</button> </li> <li role="presentation" data-tab="es"> <button role="tab" id="setdatapath-es-tab">ES Module Import</button> </li> <li role="presentation" data-tab="bundle"> <button role="tab" id="setdatapath-bundle-tab">Module Bundler</button> </li> <li role="presentation"></li> </ul> <section role="tabpanel" aria-labelledby=setdatapath-global-tab data-tabpanel="global"><pre><code class="language-js">let { setDataPath, load } = kontra; setDataPath(&#39;/data&#39;); load(&#39;file.json&#39;); // loads &#39;/data/file.json&#39;</code></pre></section> <section role="tabpanel" aria-labelledby=setdatapath-es-tab data-tabpanel="es"><pre><code class="language-js">import { setDataPath, load } from 'path/to/kontra.mjs'; setDataPath(&#39;/data&#39;); load(&#39;file.json&#39;); // loads &#39;/data/file.json&#39;</code></pre></section> <section role="tabpanel" aria-labelledby=setdatapath-bundle-tab data-tabpanel="bundle"><pre><code class="language-js">import { setDataPath, load } from &#39;kontra&#39;; setDataPath(&#39;/data&#39;); load(&#39;file.json&#39;); // loads &#39;/data/file.json&#39;</code></pre></section> </div> <h3 id="title-setDataPath"><span class="visually-hidden">setDataPath</span> Parameters</span></h3> <dl aria-labelledby="title-setDataPath"> <dt> <code>path</code> </dt> <dd><p>String. Base data path.</p> </dd> </dl> </section> <section> <h2 id="setImagePath"> <a href="api/assets#setImagePath" class="section-link"> <span>setImagePath(&#8203;path)</span> <span aria-hidden="true">#</span> </a> </h2> <p>Sets the base path for all image assets. If a base path is set, all load calls for image assets will prepend the base path to the URL.</p> <div class="tablist"> <ul role="tablist"> <li role="presentation" data-tab="global"> <button role="tab" id="setimagepath-global-tab">Global Object</button> </li> <li role="presentation" data-tab="es"> <button role="tab" id="setimagepath-es-tab">ES Module Import</button> </li> <li role="presentation" data-tab="bundle"> <button role="tab" id="setimagepath-bundle-tab">Module Bundler</button> </li> <li role="presentation"></li> </ul> <section role="tabpanel" aria-labelledby=setimagepath-global-tab data-tabpanel="global"><pre><code class="language-js">let { setImagePath, load } = kontra; setImagePath(&#39;/imgs&#39;); load(&#39;character.png&#39;); // loads &#39;/imgs/character.png&#39;</code></pre></section> <section role="tabpanel" aria-labelledby=setimagepath-es-tab data-tabpanel="es"><pre><code class="language-js">import { setImagePath, load } from 'path/to/kontra.mjs'; setImagePath(&#39;/imgs&#39;); load(&#39;character.png&#39;); // loads &#39;/imgs/character.png&#39;</code></pre></section> <section role="tabpanel" aria-labelledby=setimagepath-bundle-tab data-tabpanel="bundle"><pre><code class="language-js">import { setImagePath, load } from &#39;kontra&#39;; setImagePath(&#39;/imgs&#39;); load(&#39;character.png&#39;); // loads &#39;/imgs/character.png&#39;</code></pre></section> </div> <h3 id="title-setImagePath"><span class="visually-hidden">setImagePath</span> Parameters</span></h3> <dl aria-labelledby="title-setImagePath"> <dt> <code>path</code> </dt> <dd><p>String. Base image path.</p> </dd> </dl> </section> </div> </main> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/prism.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.16.0/components/prism-javascript.min.js"></script> <script src="assets/js/navbar.js"></script> <script src="assets/js/exampleTabList.js"></script> </body> </html>