3

Madness Interactiveをプレイしたことがある人にとって、最も苛立たしいことの1つは、カーソルがゲーム領域を離れて、誤ってクリックしたときです。これにより、ゲームの焦点がぼけ、キャラクターが数秒で死亡します。これを修正するために、ESCなどのキーを押すまで画面内にカーソルを保持するバックグラウンドで実行できるJavaアプリケーションを作成したいと思います。

これを実装する方法は2つありますが、どちらかが機能するかどうかはわかりません。

  1. Madness Interactiveのレンダリング領域のサイズに一致するAWTフレームを作成し、それを使用してカーソルを制御します。
  2. いくつかのコンテキスト外のオペレーティングシステムコールを使用して、カーソルを特定の領域に保持します。

アプローチ#1の利点:ユーザーが囲まれた領域の形状と位置を確認できるように、フレームのサイズ変更を実装するのがはるかに簡単です。

アプローチ#1の潜在的な問題:AWTフレームは、ゲームが実行されているブラウザーウィンドウからフォーカスを奪う必要があり、ソリューション全体が無意味になります。

私の質問は、これらのアプローチのどちらかが実行可能かどうかです。そうでない場合、実行可能なオプションはありますか?

編集:必要に応じて、別のプログラミング言語を使用したいと思います。

EDIT2:このためのブラウザプラグインを開発するかもしれませんが、そのような開発はこれまで行ったことがありません。調べてみます。

4

2 に答える 2

2

それでもJavaでの作業に興味がある場合は、次の解決策が考えられます。

まず、領域内のカーソルを制限するために、JavaRobotクラスを使用できます。

mouseMove(int x, int y);

次に、AWTのMouseInfoを使用して、マウスカーソルの位置を取得できます。

PointerInfo mouseInfo = MouseInfo.getPointerInfo();
Point point = mouseInfo.getLocation();
int x = (int) point.getX();
int y = (int) point.getY();

次に、マウスカーソルのxandy値が特定のポイントを超えるたびに、JavaRobotクラスを使用してそれらを元に戻します。

于 2012-12-12T02:30:10.020 に答える
1

これがブラウザベースのゲームの場合は、ゲームのサイトでのみ実行するようにフィルタリングできるブラウザ拡張機能として機能するグリースモンキースクリプトを作成することを検討してください。

最も単純なケースでは、クリック可能な領域がであると想定し(0,0) - (300,400)、次のイベントハンドラーをページに追加できます。

$(document).on('click', function(event) {
  if (event.pageX > 300 || event.pageY > 400) {
    return false;
  }
});

スクリプトをさらに改良して、次のことを行うことができます。

  1. ゲームをプレイするのに最適なサイズになるようにブラウザのサイズを変更します
  2. クリックの絶対x、y座標をチェックする代わりに、クリックを受け取りたくないページの要素内にあるかどうかをチェックします。
  3. カスタムキーバインディングをummに追加します。ゲームであなたを助けます
  4. ゲーム自体をプレイできるJavaScriptボットを作成する
于 2012-12-12T02:26:28.757 に答える