3

HTML5で小さなゲームを作成しています。キャンバス要素は、ゲームの世界へのビューポートです。ユーザーは、小さなアイコン上でマウスをクリックしてドラッグすることにより、ビューポートの世界での位置を移動できます。

問題は、マウスポインタが画面の端に当たるとスクロールが停止することです。アイコンがページの隅の1つに表示されるため、おそらく、いずれかの方向へのスクロールが大幅に制限されます。

私が考えることができる唯一の技術的な解決策は、アイコン上のマウスポインターの位置を何らかの方法で修正し、各フレームの相対的な動きを検出することです。基本的には、ドラッグイベントが発生するたびに、ポインタの位置をアイコンの中央にリセットします。残念ながら、これは不可能だと私はかなり確信しています。ユーザーのポインターで遊ぶことは、使いやすさとセキュリティの観点からは大したことではありません。

それで、私がやりたいことをする他の方法はありますか?ここでは主に技術的なアイデアを探していますが、より適切なインターフェイスの提案も歓迎します。

4

1 に答える 1

4

3つの可能な解決策:

  1. この「ジョイスティック」アイコンを角から100ピクセル離します。ホバーするまで不透明にします。クリックアンドドラッグの動きを「持続」させて、カーソルをジョイスティックの中心から40ピクセル離してクリックアンドドラッグアンドホールドすると、画面が連続的にパンするようにします。

  2. Googleマップと同様に、矢印を使用します。(ハンドグラバー部分を「ジョイスティック」部分に変更することで、これを最初のソリューションと組み合わせることもできます。)

  3. まったく違うことをしてください。たとえば、カーソルが4つのエッジのいずれかに近づいたときに、画面をパンします。

于 2010-05-04T02:12:40.070 に答える