试图让我的点对点游戏'捕捉到'最近的点
Trying to get my dot-to-dot game to 'snap to' the closest dot
我知道这是一个简单的计算,但你能帮我吗?
这是小提琴。
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var radius = 4;
for (x=radius; x<canvas.width-radius; x+=50) {
for (y=radius; y<canvas.height-radius; y+=50) {
context.beginPath();
context.arc(x, y, radius, 0, 2 * Math.PI, false);
context.stroke();
}
}
$('canvas').click(canvasClicked);
function canvasClicked(e) {
var x = e.pageX - $(this).offset().left;
var y = e.pageY - $(this).offset().top;
context.beginPath();
context.arc(x, y, radius, 0, 2 * Math.PI, false);
context.fillStyle = 'black';
context.fill();
context.lineWidth = 1;
context.strokeStyle = '#000000';
context.stroke();
};
我试图确定哪个cirlce是最接近用户点击位置的cirlce。
答案在这里:
var newX = Math.round(x/50)*50 + radius;
var newY = Math.round(y/50)*50 + radius;
x = newX;
y = newY;
这是小提琴:http://jsfiddle.net/avall/vtEER/1/
您将单击的位置四舍五入到点生成器的分辨率;
哦,你应该注意边缘点-没有为做ifs
相关文章:
- 试图让我的点对点游戏'捕捉到'最近的点
- Javascript闭包对点击事件的疑问
- 代码对点击事件的影响
- HTML表单对点击“输入”按钮没有响应
- 堆积条形图和散点对齐
- jQuery Bounce 对点击没有 jQuery UI 的影响
- 在 Javascript 中对点对象数组进行排序
- 对点击问题做出反应
- 通过jquery创建的按钮don't对点击做出响应
- 同一网络上的点对点web API
- 是否可以使用ICE直接连接,然后在WebRTC中直接进行点对点信令?
- 如何使用PHP, MySQL DB和JavaScript模拟点对点通信通道
- 点对点连接在Windows商店应用程序(HTML/JS)
- 如何建立浏览器对浏览器(点对点)连接?
- 有没有办法从浏览器运行服务器或点对点?
- SignalR点对点(js to js)通信
- 使用WebRTC/Alternative的点对点1080p直播
- 点对点会议重制,WebRTC
- 如何在web浏览器之间建立点对点连接
- 为在线多人游戏设置点对点网络