3

我正在用 HTML5 构建一个小游戏。画布元素是进入游戏世界的一个视口。用户可以通过在小图标上单击并拖动鼠标来移动视口在世界中的位置。

问题是当鼠标指针碰到屏幕边缘时滚动停止。很有可能,这将严重限制向其中一个方向的滚动,因为图标将位于页面的某个角落。

我能想到的唯一技术解决方案是以某种方式固定鼠标指针在图标上的位置并检测每帧的相对移动。基本上我只会在每次拖动事件后将指针位置重置回图标的中心。不幸的是,我相当肯定这是不可能的。从可用性和安全性的角度来看,使用用户指针是一个很大的禁忌。

那么,有没有其他方法可以做我想做的事?我主要在这里寻找技术想法,但也欢迎提供更合适的界面的建议。

4

1 回答 1

4

三种可能的解决方案:

  1. 将这个“操纵杆”图标移出角落 100 像素。给它不透明度,直到它悬停。让点击和拖动动作“持续”,以便在距离操纵杆中心 40 像素的地方点击并按住光标会导致连续的屏幕平移。

  2. 使用箭头,类似于Google 地图。(您也可以通过将抓手部分更改为“操纵杆”部分来将此与第一个解决方案结合起来。)

  3. 做一些完全不同的事情。例如,当光标靠近四个边缘中的任何一个时,让屏幕平移。

于 2010-05-04T02:12:40.070 回答