createjs localToLocal hitTest

by Yanan Tian

HTML

<canvas width="400" height="300" id="mineCanvas"></canvas>
<script src="https://code.createjs.com/easeljs-0.8.1.min.js"></script>
<script src="https://code.createjs.com/tweenjs-0.6.2.min.js"></script>
<script src="https://code.createjs.com/soundjs-0.6.2.min.js"></script>
<script src="https://code.createjs.com/preloadjs-0.6.2.min.js"></script>

JavaScript

var stage = new createjs.Stage("mineCanvas"),
    canvas = stage.canvas,
    CW = canvas.width,
    CH = canvas.height;

  var g_delta = 0;

  var target, arm;

  stage.addChild(target = new createjs.Shape())
    .set({x: CW / 4, y: CH / 4 * 3})
    .graphics
    .f('black')
    .dc(0, 0, 45)
    .f('white')
    .dc(0, 0, 30)
    .f('black')
    .dc(0, 0, 15);

  stage.addChild(arm = new createjs.Shape())
    .set({x: CW / 3, y: CH / 3})
    .graphics
    .f('blue')
    .dr(-2, -2, CW / 3, 4)
    .f('#f66')
    .dc(CW / 3, 0, 10);

  createjs.Ticker.setFPS(60);
  createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED;

  createjs.Ticker.on('tick', function (evt) {
    g_delta = evt.delta / 1000;
    stage.update(evt);
  });

  arm.on('tick', function () {
    this.rotation += 90 * g_delta;
  });

  target.on('tick', function () {
    var lpos = arm.localToLocal(CW / 3, 0, this);
    this.alpha = this.hitTest(lpos.x, lpos.y) ? 1 : .2;
  });