Fork Heaps on GitHub
Menu

Example Base2D

   »

2d applications can be created by extending hxd.App and then you can attach drawables to s2d, which is the root scene for 2d.

class Base2D extends hxd.App {

  var obj : h2d.Object;
  var tf : h2d.Text;

  override function init() {
    // creates a new object and put it at the center of the sceen
    obj = new h2d.Object(s2d);
    obj.x = Std.int(s2d.width / 2);
    obj.y = Std.int(s2d.height / 2);

    // load the haxe logo png into a tile
    var tile = hxd.Res.hxlogo.toTile();

    // change its pivot so it is centered
    tile = tile.center();

    for( i in 0...15 ) {
      // creates a bitmap into the object
      var bmp = new h2d.Bitmap(tile, obj);

      // move its position
      bmp.x = Math.cos(i * Math.PI / 8) * 100;
      bmp.y = Math.sin(i * Math.PI / 8) * 100;

      // makes it transparent by 10%
      bmp.alpha = 0.1;

      // makes the colors adds to the background
      bmp.blendMode = Add;
    }

    // load a bitmap font Resource
    var font = hxd.Res.customFont.toFont();

    // creates another text field with this font
    var tf = new h2d.Text(font, s2d);
    tf.textColor = 0xFFFFFF;
    tf.dropShadow = { dx : 0.5, dy : 0.5, color : 0xFF0000, alpha : 0.8 };
    tf.text = "Héllò h2d !";

    tf.y = 20;
    tf.x = 20;
    tf.scale(7);
  }

  // if we the window has been resized
  override function onResize() {

    if( obj == null ) return;

    // center our object
    obj.x = Std.int(s2d.width / 2);
    obj.y = Std.int(s2d.height / 2);

    // move our text up/down accordingly
    if( tf != null ) tf.y = s2d.height - 80;
  }

  override function update(dt:Float) {
    // rotate our object every frame
    if( obj != null ) obj.rotation += 0.6 * dt;
  }

  static function main() {
    hxd.Res.initEmbed();
    new Base2D();
  }

}

View source on Github Open in new tab