[BlueLeaf1336]> PROBLEMS> BurstClick>

BurstClick

historyTOP

2004/09/06:作成
2004/09/07:参考サイト更新
2004/09/09:参考サイト更新
2004/09/09:進捗状況追加
2004/09/13:途中公開追加
2004/09/14:参考サイト更新

overviewTOP

時々、マウスをクリックし倒してクリアするタイプのゲームに出会うことがあります。すごく稀ですが。これがまた難しい。マウスが壊れるんじゃないか、というほどには意外とクリックできないもんです。マウスがずれたり指がおかしくなったり厭になったり。

ところで、かつて、ファミコンだかなんだかのコントローラで連射機能付きのものがありました。ボタンを1回押すとバリバリバリと気持ちよくシューティングできたように思います。

ところで、3点バーストという言葉があります。英語では 3-Point Burst と書くような感じですが、1回トリガーを引くと3発の弾丸を発射してよい感じに相手を仕留めるためのもののようです。

というわけで、3点バースト機能をマウスにつけるようなプログラムを作ろうと考えています。別に3点でなくてもよいわけですが、ある程度は自分でクリックした方がよさそうな気もするので、そういうことにします。

方針TOP

まず、Spy++ のようにして、ターゲットとなるウィンドウを決めることから始めるようにします。全画面ゲームには全く使えないということですが...。で、ホットキーか何かで開始モードになったら、マウスのクリックに追従して +2 回 (自分で1回 + 自動で2回 = 合計3回) のクリックをやるのを目標にします。

この時点で明らかに問題だと思われるのは、他のアプリケーションで発生したクリックを捕まえるのに、多分フックするためのDLLがいるんじゃないかということ、それから、こっちが致命的な気がしますが、マウスのクリックに反応してプログラム的なクリックを行って、このクリックに反応して次のクリックが始まったらどうするのか? という点です。

1つ目のフックについては、そういうDLLを以前に作ったことがあるので多分大丈夫かと思います。飽きないうちに完成するかどうかだけが心配ですが。2つ目の無限クリックについては、何らかプログラムが行ったクリックなのか本物のクリックなのかを見分けることができるんじゃないかと、楽観的に考えている程度です。

これ以上考えたり調べたりすると、ここで話が終わりそうなので、いけるところまで行くことにします。

参考サイトTOP

プログラムからマウスのクリックを行う方法。

参考...ではなく、もろにやりたいことをやってそうなプログラムが、Vectorにどっさりありました。

参考...ではなく、"連射測定"ゲーム

進捗状況TOP

大体動くものを作ってみましたが、マウスを連打するとメッセージがたまりまくって、たった +2回のクリックを行うだけなのに、メッセージが全部はけるまで待たなければならない状況に簡単になってしまいます。(すごく横着な)キャンセル機能はつけたんですが、うまく働きません。

おまけにクリックとクリックの間に(なんとなく)Sleepをかますようにしているので、もうヒトツな使い心地に育ってます。ただ、落ち着いてクリックすれば、「3点バースト感」があります。この点については気持がいいんですが...。

GUIが適当すぎるので、もう少しコマシにする必要があるのと、やめたくなったときに、スパっと止められるようにする必要がありそうです。

---

そういうわけでClicktheFire!!!!!!v.02xl onlineで800回程度のクリック数が出せる程度の使い心地にはなりました。ただ、1クリックあたり +50回 などという面白くも何ともない設定で、ですが。もう少しで、飽きそうです。

途中公開TOP

20040913BurstClick_001.pngすごく途中ですが、ソースコードと実行ファイルです。
20040913BurstClick.zip(12,961bytes)

[TARGET]ボタンをクリックしたまま、マウスを移動させた時に、直下にあるウィンドウを点滅させます。で、適当な場所でマウスを離すと、(だいたい)その辺にあるウィンドウをターゲットとしてロックオンします。ターゲットに対してマウスクリックを行うと、(1)クリックした回数 +N回(上側のスライダーで設定) のクリックを、ターゲットに送りつけます。(2)クリックとクリックのインターバルは Mミリ秒(下側のスライダーで設定)です。

3回程度のバーストクリックは大丈夫のようですが、+50回とか設定すると、マウス連打とプログラム連打があいまって、キューにクリックがたまってしまい、既にクリックを止めてるにもかかわらず、たまっただけのクリックが延々と続けられます。説明しがたいですが、やればわかります。

これはロックオンをキャンセルしても、キャンセル処理そのものが後回しになるので、うまいこといきません。このあたりがなぁ。

参考サイトTOP

EOFTOP