Minecraftのサーバープレイ勢 本気の放置
Minecraftのサーバープレイ勢 本気の放置
PyAutoGuiとPyDirectInputの違いを見に来た人向け
キッカケ
これは本当に出来心です。マイクラで「かまど」とかを長時間動かしといておきたくても、サーバーではすぐにキックされてしまって、本来はこれでいいんですけど、どうしても少しの間だけ席を外さないといけなかったので、その瞬間を埋めるためだけに、今回のプログラムを作りました。
使用した環境
Python3.9.7
VSCode
Module
PyAutoGui
Pydirectinput(比較用)
time(標準モジュール)
実行するまで
もし同じことをする人がいた時のために一応
まずはインストール
pip install pyautogui
もしくは
pip install pydirectinput
実際に使用したコード
今回の実行の際に利用したコードは下記のものです。
import pyautogui
import time
while True:
try:
times=int(input("入力したい回数を指定してください。"))
except ValueError as e:
print(f"{e}")
continue
break
tmp=input(f"{times}回で約{round((times*120)/60,2)}分の放置が可能です。実行しますか?{y/n}")
if tmp=="y":
for i in range(times):
time.sleep(120)
pyautogui.keyDown("w")
time.sleep(1)
pyautogui.keyUp("w")
print(f"{i+1}回目")
else:
print("プログラムを終了します")
多分これ見てる人にプログラムの解説はいらないので割愛します。
備考
いろいろ試してみたところ放置してるか放置してないかの判定は「1マスでも動いているか否か」というポイントであると思います。
(ほかにも視点移動やジャンプなど試しましたが、一番プログラムとして実装しやすいのはこれだった)
総評
実際に秒数などいろいろ調整しながらの実装でしたが、本来の用途は達成できていると考えます。
別にEXE化する必要もなしに、ターミナルからpython経由で起動させてればいいので今回の目的はこれで達成されたとします。
PyAutoGuiとPyDirectInputの違いを見に来た人向け
基本的に操作感、モジュールの利用方法は一緒だったと思います。私もネットでの記事が少なくわかりにくかったためリファレンスなどを読んでみましたがやっぱり同じような方法での利用となっていました。
当方の環境では、どちらかでないといけないということはなかったことを書き留めておきます。
参考にさせていただいた記事(Qiita内の記事です)
Author And Source
この問題について(Minecraftのサーバープレイ勢 本気の放置), 我々は、より多くの情報をここで見つけました https://qiita.com/pentyan0303/items/058a7795678b5372e18f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .