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;
});