createjs 挣扎于 hitTest()
createjs struggling with hitTest()
我正在 canvas 中填充小圆圈以形成一个形状,并希望使用以下函数破坏用户在屏幕上单击的一些圆圈。
dotsArray : 是所有圆的数组
dot.ball: 是画的圆
炸弹:是使用鼠标点击的用户输入绘制的圆圈,hold.The 炸弹在按下鼠标时按比例放大
function onMouseDown(event){
bomb.x = event.stageX;
bomb.y = event.stageY;
bomb.active = true;
}
function decimateBalls(){
for (var i = 0; i < dotsArray.length; i++){
for ( var j = 0; j < dotsArray[i].length; j++){
var dot = dotsArray[i][j];
var pt = dot.ball.localToLocal(dot.ball.x, dot.ball.y,bomb);
if(bomb.hitTest(pt.x,pt.y)){
dot.setType("empty"); // this changes dot's circle to white making it seem invisible
}
}
}
}
当我使用上面的代码时,即使我计算了小点相对于正在绘制的炸弹圈的位置,消失的点是那些与正在绘制的炸弹圈有很大偏移的点。
我做错了什么吗?有没有更好的方法来解决这个问题?
非常感谢您的宝贵时间。
我使用以下解决方法来获得所需的结果。
- 确保所有内容都已添加到舞台上。摆脱了容器。
- 使用
if(bomb.hitTest(dot.ball.x - bomb.x,dot.ball.y - bomb.y))
并摆脱了 createjs 提供的 localToLocal()
函数来查找一个对象相对于另一个对象的局部坐标。
希望这对遇到类似问题的人有所帮助。
我正在 canvas 中填充小圆圈以形成一个形状,并希望使用以下函数破坏用户在屏幕上单击的一些圆圈。
dotsArray : 是所有圆的数组 dot.ball: 是画的圆 炸弹:是使用鼠标点击的用户输入绘制的圆圈,hold.The 炸弹在按下鼠标时按比例放大
function onMouseDown(event){
bomb.x = event.stageX;
bomb.y = event.stageY;
bomb.active = true;
}
function decimateBalls(){
for (var i = 0; i < dotsArray.length; i++){
for ( var j = 0; j < dotsArray[i].length; j++){
var dot = dotsArray[i][j];
var pt = dot.ball.localToLocal(dot.ball.x, dot.ball.y,bomb);
if(bomb.hitTest(pt.x,pt.y)){
dot.setType("empty"); // this changes dot's circle to white making it seem invisible
}
}
}
}
当我使用上面的代码时,即使我计算了小点相对于正在绘制的炸弹圈的位置,消失的点是那些与正在绘制的炸弹圈有很大偏移的点。
我做错了什么吗?有没有更好的方法来解决这个问题? 非常感谢您的宝贵时间。
我使用以下解决方法来获得所需的结果。
- 确保所有内容都已添加到舞台上。摆脱了容器。
- 使用
if(bomb.hitTest(dot.ball.x - bomb.x,dot.ball.y - bomb.y))
并摆脱了 createjs 提供的localToLocal()
函数来查找一个对象相对于另一个对象的局部坐标。
希望这对遇到类似问题的人有所帮助。