我正在用 HTML5 开发一个六角网格策略游戏,由于向 UI 添加更多按钮变得很复杂,我正在使用 KineticJS 重写我的代码来绘制画布。
在我的游戏中,有一个小地图,其中有一个矩形显示玩家相机的位置。当玩家点击小地图时,他的相机中心将被设置为他点击的位置。我的原始代码不使用任何外部库,它看起来像这样:
this.on('click', function(event){
var canvas = document.getElementById('gameCanvas');
var x = event.pageX - canvas.offsetLeft;
var y = event.pageY - canvas.offsetTop;
camera.setPos( // calculate new position based on x and y....);
}
})
所以基本上我想要的是点击事件相对于画布的位置。由于现在 KineticJS 控制了画布,并且它不允许我设置画布 id,所以我不能再用它getElementById
来选择我的画布了。还有另一种方法吗?
可能有某种方法我没有想出可以设置画布 id,但我期待一个更优雅的解决方案,最好是通过 KineticJS API。
谢谢。