Download inference/game_controller.py from TAI-Research/HonorNet_v1: direct link, hf CLI and curl.
- Browser
- Download file 1.13 kB
-
https://huggingface.co/TAI-Research/HonorNet_v1/resolve/main/inference/game_controller.py
- Command line
-
hf download hf://TAI-Research/HonorNet_v1/inference/game_controller.py
-
curl -L -o game_controller.py https://huggingface.co/TAI-Research/HonorNet_v1/resolve/main/inference/game_controller.py
1.13 kB
| # game_controller.py | |
| import subprocess | |
| from PIL import Image | |
| import io | |
| class GameController: | |
| def __init__(self, device_id="emulator-5554"): | |
| self.device_id = device_id | |
| def screenshot(self): | |
| """截图并返回PIL Image对象""" | |
| cmd = f"adb -s {self.device_id} exec-out screencap -p" | |
| output = subprocess.check_output(cmd, shell=True) | |
| img = Image.open(io.BytesIO(output)) | |
| return img | |
| def tap(self, x, y): | |
| """点击指定坐标""" | |
| cmd = f"adb -s {self.device_id} shell input tap {x} {y}" | |
| subprocess.run(cmd, shell=True) | |
| def swipe(self, x1, y1, x2, y2, duration=50): | |
| """滑动操作""" | |
| cmd = f"adb -s {self.device_id} shell input swipe {x1} {y1} {x2} {y2} {duration}" | |
| subprocess.run(cmd, shell=True) | |
| def get_screen_size(self): | |
| """获取屏幕分辨率""" | |
| cmd = f"adb -s {self.device_id} shell wm size" | |
| output = subprocess.check_output(cmd, shell=True).decode() | |
| size_str = output.split(":")[1].strip() | |
| w, h = map(int, size_str.split("x")) | |
| return w, h |