Source: app01/app.js

/**
 * @author    Wolfgang Kowarschick <kowa@hs-augsburg.de>
 * @copyright 2017 - 2018
 * @license   CC-BY-NC-SA-4.0
 */

/**
 * @module app01/app
 */

import                             '/css/app.css';
import wait                   from '/wk/util/wait';
import GameLoop               from '/wk/game/GameLoop';
import {Application}          from 'pixi.js';

import ModelStage             from './model/ModelStage';
import ModelCircle            from './model/ModelCircle';
import {initUpdater, update}  from './model/update';

import ViewCircle             from './view/ViewCircle';
import {initRenderer, render} from './view/render';

const
  c_view_stage
    = document.getElementById('stage'),

  c_pixi_app =
    new Application
        ( document.documentElement.clientWidth,
          document.documentElement.clientHeight,
          { transparent: true,
            view:        c_view_stage
          }
        ),

  c_model_stage =
    new ModelStage
        ({ "left":   0,
           "right":  document.documentElement.clientWidth,
           "top":    0,
           "bottom": document.documentElement.clientHeight
        }),

  c_model_ball =
    new ModelCircle
        ({ "r":   75,
           "x":   75,
           "y":   75,
           "vx": 400,
           "vy": 300
        }),

  c_view_ball =
    new ViewCircle
        ( c_pixi_app,
          c_model_ball,
          { "border":      5,
            "borderColor": "#666666",
            "color":       "#FF77AA"
          }
        );

initUpdater({stage: c_model_stage, circle: c_model_ball});
initRenderer([c_view_ball]);

async function init()
{ c_view_stage.classList.remove('hidden');
  await wait(500);
  new GameLoop({update: update, render: render}).start();
}

window.addEventListener('load', init);