2016-12-31 7 views
-1

私はFacebookのメッセンジャーバスケットボールやフットボールを私のためにプレイするボットを作ろうとしています。私は何年か前に何かを作ったこともあったが、両方のゲームに問題があった。バスケットボールでは、バスケットが非常に速く動き出したので、私のプログラムは計算が間違っていて、ボールが速く動いていたときにサッカーでミスを犯していました。私はRobot.createScreenCapture()を使って画面の断片を取得し、それをBufferedImageに保存しましたが、画像のすべてのピクセルをチェックしていましたが、速くはありません(ピアノタイル2も試しました)。私はもっ​​と速い方法が必要です。Java BufferedImage = Robot.createScreenCapture()not fast enought

+0

私は、nはボール半径またはより正確にはsqrt(2 * R * rの)になり、すべてのn番目の行と列を、スキャンする意味でラフなグリッドを使用するには、** **十分な速さではない何か?画面キャプチャ自体は?それは知られている:http://stackoverflow.com/q/646089/3182664、http://stackoverflow.com/q/17665529/3182664、http://stackoverflow.com/q/19843050/3182664および他。それともあなたの分析が遅すぎますか?次に、この「ピクセルチェック」をどのように行ったかを教えてください。それ以外の場合は、推測しかできません。 – Marco13

+0

私は何が速くないのかわかりません、私のプログラムはちょうどmissclickなので、それはserachingプロセスかスクリーンキャプチャ自体です。私はちょうどforループのforループを使用しています、それは原始的な方法ですが、より速いはずです。 – Konik

答えて

0

あなたは、BufferedImageオブジェクトでボールをどのように見つけるかについての詳細は述べていません。

あなたは可能性:

  • は、いわゆる対数検索によって位置プロセスの有効性を高めます。
  • 動き予測技術を使用して検索領域を縮小します。

これらの2つを試したことがない場合は、最初のものから始めます。近似した位置の周りの縮小された探索領域内の位置を精緻化することができる。

+0

私はバスケットボールボットを作っていたとき、私は1行のピクセルしかチェックしていなかったので、スクリーンキャプチャの速度が十分ではなかったかもしれません。グラフィックカードにアクセスする必要があるかもしれませんが、そういうもの。 – Konik