1

ボットのスクリプトを作成するために、ゲームのピクセルをキャプチャしようとしています。私は簡単な機能を持っています:

def printPixel():
  while True:
    flags, hcursor, (x,y) = win32gui.GetCursorInfo()
    print x,y,':',ImageGrab.grab().getpixel((x,y))

これにより、現在の x、y 座標とそのピクセルの RGB 値が出力されます。これは、さまざまなアイコンなどの上にカーソルを置いているデスクトップでは期待どおりに機能しますが、ゲーム内では同じ機能が機能しません。何かご意見は?

編集: 画像をファイルに保存し、保存した画像に対して同じ操作を実行すると、ゲーム内で完全に機能します。ただし、速度はかなり遅くなります。ファイルからではなく、メモリ内の画像を操作したいと思います。

4

1 に答える 1

1

ビデオゲームは、パフォーマンス上の理由からグラフィックシステムを直接処理することが多いため、一般的なWindowsAPIの一部は機能しない場合があります。Print Screenボタンを押して、スクリーンショットを撮ってみてください。それが画面をキャプチャする場合は、Pythonでスクリーンショットを撮り、カーソル位置を考慮してキャプチャした画像を確認できます。

Windowsでスクリーンショットを撮るには、質問に対するこの回答を確認してください。WindowsでPythonを使用してスクリーンショットを撮る最速の方法は、使用しているwin32guiライブラリを使用します。

于 2012-11-13T04:02:15.803 に答える