【发布时间】:2013-02-06 07:03:31
【问题描述】:
我正在用 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。
谢谢。
【问题讨论】:
标签: javascript html html5-canvas kineticjs